我启用了网站框架(包括中间件)并设置了两个网站(ID = 1和ID = 2)。我的一个模型使用Site的外键。为了论证,让我们说它看起来像这个
class Person(models.Model):
name = models.CharField(max_length=20)
site = models.ForeignKey(Site)
on_site = CurrentSiteManager()
在我的settings.py中,我有SITE_ID = 1
如果我在管理员屏幕中创建人员实例,并将其网站设置为ID = 2的网站,则会创建该网站,但它会隐藏在当前管理屏幕中。
这对我来说似乎违反直觉。我想用我的单个django管理界面来管理我的两个网站。在我的list_display中,我有' site',所以如果它向我显示了所有实例,我就知道它与哪个网站有关。
是否有某种方法可以确保在管理屏幕中显示我的模型的所有实例,而不管站点ID?
我不想登录两个单独的管理URL来管理所有模型实例。
答案 0 :(得分:1)
你实际上不需要CurrentSiteManager
,只需通过ForeignKey将模型连接到Site Model;
from django.contrib.sites.models import Site
class Person(models.Model):
name = models.CharField(max_length=20)
site = models.ForeignKey(Site)
on_site = models.ForeignKey(Site,related_name="site_users")
在管理员中,您会看到一个下拉列表,可选择Person
应属于哪个网站。
不要忘记迁移模型,因为您正在更改架构