./manage.py runserver
在将 Django 从 1.7 升级到 1.8 后运行时,出现以下警告两次。
.../django/contrib/sites/models.py:78: 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.
该项目仍然运行良好,但我想摆脱警告。我没有在我的项目中使用 Sites 框架,但是当我添加'django.contrib.sites'
到INSTALLED_APPS
项目的settings.py
. 这样就解决了警告,我很高兴。
但随后项目开始在登录提示时要求数据库中的站点。现在,整件事是我根本不想要站点框架。但是现在我似乎被迫管理一个数据库条目并且需要在安装过程中考虑它,当我只是想摆脱一个警告时。
看来登录代码django.contrib.auth
依赖于代码中的它。但是,在 Django 的文档中,我发现了这个断言:“site_name:site.name 的别名。如果您没有安装站点框架,这将设置为 request.META['SERVER_NAME'] 的值。更多关于站点,请参阅“站点”框架。”
因此,似乎django.contrib.auth
Sites 框架的作者认为是可选的,但从我的情况来看,并非如此。
因此我的问题。是否可以在完全不使用 Sites 框架的情况下使用 Django 的(可能是贡献的)身份验证系统,并且仍然摆脱该警告以及与 Sites 框架相关的所有内容?