0

我有两个具有不同 SITE_ID 的站点,但我希望这两个站点只有一个管理界面。

我有一个模型,它只是一个扩展的 FlatPage:

# models.py
class SFlatPage(FlatPage):
    currobjects = CurrentSiteManager('sites')

    galleries = models.ManyToManyField(Gallery)
    # etc

# admin.py
class SFlatPageAdmin(FlatPageAdmin):
    fieldsets = None

admin.site.register(SFlatPage, SFlatPageAdmin)
admin.site.unregister(FlatPage)

我不知道为什么,但管理界面中只有当前站点的页面。在http://site1.com/admin/我看到了 site1 的平面页面,在http://site2.com/admin/我看到了 site2 的平面页面。但我想在http://site1.com/admin/界面中查看所有页面!我究竟做错了什么?

4

1 回答 1

1

这是因为CurrentSiteManager。根据文档,“它是一个模型管理器,可以自动过滤其查询以仅包含与当前站点关联的对象。”

删除这条线,一切都应该按预期工作。或者,如果您currobjects在代码中使用其他地方,请注意管理界面始终使用指定的第一个管理器,因此您需要首先指定标准管理器,如下所示:

# models.py
class SFlatPage(FlatPage):
    objects = models.Manager() # Is first, so will be used by admin
    currobjects = CurrentSiteManager('sites') # your alternative manager

    galleries = models.ManyToManyField(Gallery)
于 2010-04-05T11:35:21.993 回答