代码之家  ›  专栏  ›  技术社区  ›  Valentin Golev

多个站点的一个管理员

  •  0
  • Valentin Golev  · 技术社区  · 14 年前

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

    我有一个模型,它只是一个扩展的平面图:

    # 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/ 我看到站点1的平面图,在 http://site2.com/admin/ 我看到站点2的平面图。但我想看所有的页面 http://site1.com/admin/ 接口!我做错什么了?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Ludwik Trammer    14 年前

    这是因为 CurrentSiteManager . 根据 the documentation “它是一个模型管理器,自动筛选其查询以仅包括与当前站点关联的对象。”

    拆下管路,每次都应按预期工作。或者如果你利用 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)
    
    推荐文章