2017-05-26 18 views
0

私はいくつかの関連モデルを持っています。 django adminではAppealを作成したいと思います。Django管理者が親モデルにインラインでアクセス

モデルからわかるように、私はAssignmentリストから選択する必要がありますが、私の場合、最も頻繁にゼロから作成する必要があります。 "+"をクリックした場合、Django管理者はこのオプションを提供します。ClientProfileを選択する必要がありますが、再度作成する必要があります。 「+」

しかし、私のモデルからわかるように、ClientProfileは、ユーザーを指し、多くの場合、それはまた、新たに作成する必要があり、そのため再び「+」に

そして、最も恐ろしいことを押してくださいこの状況では、UserはAddressのモデルを参照しています。

質問は「+」に3-5回押す必要がないようにすることですか?各プレスにはオープニングポップが付いていて、あまり便利ではありません。

フォームやモデル自体の継承について考えています。いくつかの抽象モデルを作成しましたが、私はWizardViewについても考えていましたが、これはDjango-adminに統合できませんでした。

私は混乱しており、正しく行う方法を理解していません。

問題は、モデルのアーキテクチャを間違って構築したことですか? これはそうだとは言えませんが、モデルがどのように関連しているのが好きです。

class Appeal(Base): 
    ... 
    assigment = models.ForeignKey(Assignment, null=True) 
    ... 


class Assignment(Base): 
    ... 
    client = models.ForeignKey(ClientProfile, null=True) 
    ... 
    address = models.ForeignKey(Address, null=True) 
    ... 


class ClientProfile(Base): 
    ... 
    user = AutoOneToOneField(settings.AUTH_USER_MODEL, null=True) 
    ... 


@python_2_unicode_compatible 
class User(AbstractUser): 
    ... 
    phone_number = models.ManyToManyField(PhoneNumber) 
    ... 
    address = models.ForeignKey(Address, null=True) 
    ... 

答えて

-1

documentationから読み取ることができるようDjangoのadminに関連するモデルにインラインを追加するために、その可能。しかし、Djangoの管理者は常に信頼できるわけではないので、あなた自身の設計した管理パネルを持っている方がよいでしょう。

+0

私は確かにインラインについて知っています。しかし、私は反対が必要です。私は両親を子供に加える必要があります。最初のテーブルにエントリを作成するように指定した例では、5つのプラスをクリックして5つのフォームを入力する必要があります。 オーバーライドフォームを使用するか、WizzardFormsのSessionViewを使用するかを問わず、これを最小限に抑えたい –

関連する問題