0

サイト フレームワーク (ミドルウェアを含む) を有効にし、2 つのサイト (ID=1 と ID=2) をセットアップしました。私のモデルの 1 つは、サイトへの外部キーを使用します。議論のために、このように見えるとしましょう

class Person(models.Model):
    name = models.CharField(max_length=20)
    site = models.ForeignKey(Site)
    on_site = CurrentSiteManager()

私のsettings.pyにはSITE_ID = 1があります

管理画面で person のインスタンスを作成し、そのサイトを ID=2 のサイトに設定すると、作成されますが、現在の管理画面では非表示になります。

これは私には直感に反するようです。単一の django 管理画面を使用して 2 つのサイトを管理したいと考えています。私のlist_displayには「サイト」があるので、すべてのインスタンスが表示された場合、それがどのサイトに関連しているかがわかります。

サイト ID に関係なく、管理画面でモデルのすべてのインスタンスが表示されるようにする方法はありますか?

すべてのモデル インスタンスを管理するために 2 つの個別の管理 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 に答える