14

私は Django(1.4) モデルで多対多の関係を持っています。

class UserProfile(models.Model):
    foos = models.ManyToManyField(Foo)

各ユーザー (プロファイル) に少なくとも 1 つの Foo があることを強制したいと思います。Foos は、0 個以上のユーザー (プロファイル) を持つことができます。

これをモデルと管理レベルで適用したいのですが、管理で適用するだけで十分です。

私の理解が正しければ、Django で言えば「多数」はゼロ以上です。

ManyToOneOrMore 関係が必要です。これどうやってするの?

ありがとう、

クリス。

4

2 に答える 2

11

@Gregの詳細としてモデルレベルでこれを適用することはできませんが、フィールドを必須にするだけでフォームに適用できます。これにより、シェルレベルのアクセス権を持つユーザーがfooなしでUserProfileを手動で作成することを防ぐことはできませんが、ブラウザーベースのフォーム作成方法を使用するユーザーを強制します。

于 2012-05-07T16:19:14.673 に答える
8

残念ながら、ManyToMany データは他のモデル フィールドとは別に保存されるため、これはモデル レベルでは不可能だと思います。カスタム フォームを指定し、フォームに clean() メソッドを記述することで、管理者レベルでそれを強制できるはずです。

于 2012-05-07T11:00:14.950 に答える