この質問のタイトルが下手で申し訳ありません。単純な文脈で表現する方法が思い浮かびません。
簡単なフォトギャラリーを作っています。管理者はギャラリー ページを作成し、そこに画像をアップロードできます。ギャラリーごとに、写真の 1 つから 1 つのバナー イメージが必要です。Photo モデルには、バナーかどうかを示す CharField があります。ギャラリーに属するすべての写真に対して 'B' を 1 つだけ許可するように変数を作成する方法はありますか?
unique_together
クラスの変数を定義する必要があります。フィールドの名前がalbum
との場合banner
、この行をモデルの Meta クラスに追加する必要があります。
unique_together = (("album", "banner"),)
そして、ブール値に charfield を使用することは正しい選択ではないと思います。banner
フィールドを BooleanField に変更する必要があります。
OneToOneフィールドを作成しませんか?
class Gallery(models.Model):
...
banner = models.OneToOneField(Photo)
このようにして、ギャラリーと写真の間に独自の関係があります。