我可以在管理面板中更改域名和站点的名称(http://127.0.0.1:8000/admin)。但是,当我尝试直接对表django_site
中的数据库进行更改时,它不会反映在管理面板中(也不会反映在激活电子邮件中发送的链接的URL中)。
为什么此更改无法直接在数据库中运行,如何更改除管理面板之外的站点/域?
答案 0 :(得分:1)
根据docs,Django会在第一次请求时缓存该网站。因此,您需要致电Site.objects.clear_cache()
:
由于当前网站存储在 数据库,每次调用 Site.objects.get_current()可以 导致数据库查询。但是Django 比那更聪明:在...上 第一个请求,当前站点是 缓存,以及任何后续调用 返回缓存的数据而不是 打到数据库。
如果出于任何原因你想强迫一个 数据库查询,你可以告诉Django 使用清除缓存 Site.objects.clear_cache()