Skip to content

Commit

Permalink
Refs #32285 -- Made AppConfigStub do not call super().__init__().
Browse files Browse the repository at this point in the history
Calling super().__init__() is unnecessary and enforces the use of
various workarounds.
  • Loading branch information
hramezani authored and felixxm committed Dec 22, 2020
1 parent 2a76f43 commit 110001d
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions django/db/migrations/state.py
Original file line number Diff line number Diff line change
Expand Up @@ -227,15 +227,14 @@ def __eq__(self, other):

class AppConfigStub(AppConfig):
"""Stub of an AppConfig. Only provides a label and a dict of models."""
# Not used, but required by AppConfig.__init__
path = ''

def __init__(self, label):
self.label = label
self.apps = None
self.models = {}
# App-label and app-name are not the same thing, so technically passing
# in the label here is wrong. In practice, migrations don't care about
# the app name, but we need something unique, and the label works fine.
super().__init__(label, None)
self.label = label
self.name = label

def import_models(self):
self.models = self.apps.all_models[self.label]
Expand Down Expand Up @@ -332,7 +331,6 @@ def register_model(self, app_label, model):
if app_label not in self.app_configs:
self.app_configs[app_label] = AppConfigStub(app_label)
self.app_configs[app_label].apps = self
self.app_configs[app_label].models = {}
self.app_configs[app_label].models[model._meta.model_name] = model
self.do_pending_operations(model)
self.clear_cache()
Expand Down

0 comments on commit 110001d

Please sign in to comment.