Django - manage.py sql APPNAME not generating model SQL

前端 未结 2 660
小蘑菇
小蘑菇 2021-01-25 06:13

I have a relatively large flat application that I\'m working on. To maintain separation of concerns, I\'ve split the model and view files into auth_models, d

2条回答
  •  时光取名叫无心
    2021-01-25 06:59

    See this answer.

    Django makes assumptions about your app name from the path in which the models live, so you're forced in this situation to add an app label to every imported model like this:

    class MyModel(Model):
        # Model fields
        class Meta:
            app_label = 'app'
    

    Background:

    As of this writing, Django has the following code to detect an app label for a model:

        if getattr(meta, 'app_label', None) is None:
            # Figure out the app_label by looking one level up.
            # For 'django.contrib.sites.models', this would be 'sites'.
            model_module = sys.modules[new_class.__module__]
            kwargs = {"app_label": model_module.__name__.split('.')[-2]}
    

    From this, we see that it infers the app_label from the modules name, which may exist deep in the app hierarchy.

提交回复
热议问题