2011-01-10 13 views
0

次のシナリオでDjangoモデルを作成しようとしています。Djangoで従属モデルの関係を作成する方法

いくつかのクラブがあります。各クラブには1人のリーダーと複数のメンバーがいます。リーダーはまたメンバーです。

これらは、これまでのところ、私のモデルです:adminインタフェースで

class Club(models.Model): 
    name = models.CharField(max_length=50) 
    leader = models.ForeignKey('Member', related_name='+') 
class Member(models.Model): 
    name = models.CharField(max_length=50) 
    club = models.ForeignKey(Club) 

、私は最初のクラブをせずにメンバーを追加することはできませんが、私が指定するメンバーを作成せずにクラブを作ることができませんリーダーとして私はBlank = TrueをリーダーのForeignKey関係に追加しようとしましたが、それでも動作しません。

状況に合わせてモデルを作成するにはどうすればよいですか?

ありがとうございます!

答えて

1

ClubLeaderモデルクラスを作成します。クラブには外部キーとしての列を、リーダーにはメンバーを作成します。そのテーブルのClub + Member IDの一意性を強制して、複数のリーダーを持たないようにします。あなたのクラブクラスからリーダーを削除してください。

また、私は真のは、データベース内のフィールドがnullになることを意味するものではありません=ブランク、詳細についてはメンバーのために私のような人がいるであろう任意のクラブ(グルーチョ・マルクス)

0

に参加しません。これは、ModelFormを使用しているときにフォームフィールドを空白にすることができることを意味します(または、おそらく管理者 - または/または)。あなたが欲しいのはblank=True, null=Trueです。これにより、ヌル値と空白値が/ adminパネルの形式で入力できます。

私はまだSpacedmanの答えに行くだろう。 「間に」ある別のテーブルを用意してください。このようにして、会員はクラブに所属していなければなりません。

関連する問題