Django:使用sites框架包含多个settings.py文件(或包含动态SITE_ID)的正确方法是什么?

时间:2017-09-21 04:04:27

标签: django django-sites

我在生产中的Django网站上收到此错误:

  

您正在使用Django“站点框架”而未设置SITE_ID设置。在数据库中创建一个站点并设置SITE_ID设置或将请求传递给Site.objects.get_current()以修复此错误。

问题已被提出here,但接受的答案建议在生产中使用runserver

也有人问here,但接受的答案是难以理解的。

我已尝试将以下内容添加到我的settings.py文件中,但会引发错误:

from django.contrib.sites.models import Site
SITE_ID = Site.objects.get_current()

错误是:

  

django.core.exceptions.ImproperlyConfigured:SECRET_KEY设置不能为空。

...但我确实设置了SECRET_KEY设置。

Django documentation上为同一服务器上的多个站点提供服务的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

这里的答案是包括Sites framework middleware

'django.contrib.sites.middleware.CurrentSiteMiddleware'

每次错误通知时,每次请求都会自动将request对象传递给Site.objects.get_current()