您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Django 1.9弃用警告app_label

Django 1.9弃用警告app_label

如警告中所述,将发生以下两种情况:

通常,当你有from .models import SomeModels一个apps.py早期信号时(例如post_migrate),就会发生这种情况。建议不要使用AppConfig.get_model()代替这里的经典方法。检查你的apps.py文件是否有任何模型导入,并使用此api替换它们。

例如代替:

# apps.py

from django.apps import AppConfig
from .models import MyModel

def do_stuff(sender, **kwargs):
    MyModel.objects.get() # etc...

class MyAppConfig(AppConfig):
    name = 'src.my_app_label'

    def ready(self):
        post_migrate.connect(do_stuff, sender=self)

做这个 :

# apps.py

from django.apps import AppConfig

def do_stuff(sender, **kwargs):
    mymodel = sender.get_model('MyModel')
    mymodel.objects.get() # etc...

class MyAppConfig(AppConfig):
    name = 'src.my_app_label'

    def ready(self):
        post_migrate.connect(do_stuff, sender=self)

请注意,此强制性是在Bug #21719中引入的。

类似错误。就我而言,错误是:

RemovedInDjango19Warning: Model class django.contrib.sites.models.Site doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9.
class Site(models.Model):

我的解决方案是:

添加'django.contrib.sites'到INSTALLED_APPS

Go 2022/1/1 18:20:44 有316人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶