0

我启用了站点框架(包括中间件)并设置了两个站点(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 中,我有“站点”,所以如果它向我显示所有实例,我就会知道它与哪个站点相关。

是否有某种方法可以确保在管理屏幕中显示我的模型的所有实例,而不管站点 ID 是什么?

我不想登录到两个单独的管理 URL 来管理所有模型实例。

4

1 回答 1

1

您实际上不需要CurrentSiteManager,只需通过 ForeignKey 将模型连接到站点模型即可;

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在管理员中,您将看到一个下拉菜单,用于选择应属于哪个站点。

不要忘记迁移模型,因为您正在更改架构

于 2014-12-02T21:28:13.097 回答