3ch*_*eel 3 django django-admin
昨天我设置了一个新的 Django 应用程序,当我停止工作时,管理员仍然正常。今天早上我运行服务器,我看到这个错误页面:
DoesNotExist at /admin/
Site matching query does not exist.
Run Code Online (Sandbox Code Playgroud)
我没有触及任何代码或对数据库进行任何更改。在寻找答案时,我看到了这篇文章,确实,'django.contrib.sites'从INSTALLED_APPS我的settings.py文件中删除确实“解决”了问题,但现在我想知道为什么. INSTALLED_APPS昨天我还在工作的时候显然有那条线,但我想知道为什么从那时起我没有接触任何代码,为什么它今天突然停止工作。
您需要一个Site对象出现在sites表中。出于某种原因,Site对象没有被创建。
尝试这个
登录到你的 django shell
$> ./manage.py shell
>>> from django.contrib.sites.models import Site
>>> site = Site()
>>> site.domain = 'example.com'
>>> site.name = 'example.com'
>>> site.save()
Run Code Online (Sandbox Code Playgroud)
或者
$> ./manage.py shell
>>> from django.contrib.sites.models import Site
>>> site = Site.objects.create(domain='example.com', name='example.com')
>>> site.save()
Run Code Online (Sandbox Code Playgroud)
这应该可以解决您的问题。
您还可以参考有关启用框架的文档Sites:
要启用站点框架,请按照下列步骤操作:
将 'django.contrib.sites' 添加到您的 INSTALLED_APPS 设置中。
定义 SITE_ID 设置:
SITE_ID = 1
运行迁移。
django.contrib.sites 注册一个
post_migrate信号处理程序,它创建一个以example.comdomain命名的默认站点example.com。该站点也将在 Django 创建测试数据库后创建。要为您的项目设置正确的名称和域,您可以使用初始数据固定装置。
| 归档时间: |
|
| 查看次数: |
1607 次 |
| 最近记录: |