[Django]报错DoseNotExist. Site matching query does not exist.


这个博客前些天出现问题,打开文章的连接,就会显示服务器内部错误。找了好久,完全找不到头绪,绝望到想重新建一个博客...不过经过层层排查,最后终于解决。 失败-飞机

原因: 当时我通过admin管理界面创建了一个站点,然后因为某种原因(应该是闲的)又将站点删除,重新建立一个站点,此时id=1→id=6,但是settings.py中的SITE_ID=1,却并没有更改,就会报此错误。 解决: 1.进入mysql,找到网站数据库的django_site
2.select * from django_site;

3.找到网站对应的id,我的是id=6
4.在settings.py中将修改SITE_ID如图

5.reload网站

如果是没有Site而报错,可以新建一个Site。

./manage.py shell
from django.contrib.sites.models import Site
site = Site()
site.domain = 'example.com'
site.name = 'example.com'
site.save()