0

SITE_IDが異なる2つのサイトがありますが、両方のサイトに1つの管理インターフェイスのみが必要です。

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 に答える