1. ホーム
  2. ジャンゴ

[解決済み】Djangoで多対多のフィールドをオプションにするにはどうすればいいですか?

2022-04-05 14:11:12

質問

多対多のリレーションシップがある場合 ( related_name ではなく through ) で、管理者用インターフェースを使用しようとすると、最初のエントリを作成するために関係が存在する必要はないにもかかわらず、関係の1つを入力することが要求されます。

イベント主催者のアプリを作成しています。次のようなものがあると想像してください。 EventGroup モデルで、多対多の関係で結ばれています。

Django related_name は、他の2つのテーブルのインデックスを持つ別のテーブルを作成します。

しかし、この余分なテーブルが があります。 を入力する必要があります。

phpMyAdmin を使ってデータベースを操作すると Group を登録することなく Event というのは、この2つの間の接続は別のテーブルを介するだけであり、与えられたレベルでのデータベース値の強制はないからです。

管理画面はどのようにすれば実現できますか?

Django で多対多のフィールドをオプションにするにはどうしたらいいですか?

どのように解決するのですか?

もし、ManyToManyリレーションを必須とせずに指定したい場合は、以下のようにします。 blank=True :

class Group(models.Model):
    ...
    events = models.ManyToManyField(Event, blank=True)