私は次のモデルを持っています:
class Computer(models.Model):
...
class Demo(models.Model):
computers = models.ManyToManyField(Computer)
...
class Scenario(models.Model):
demo = models.ForeignKey(Demo)
...
class Setting(models.Model):
scenario = models.ForeignKey(Scenario)
computer = models.ForeignKey(Computer)
基本的に、デモは複数のコンピューターを使用します。デモにも複数のシナリオがあります。各シナリオにはいくつかの設定があり、各設定でコンピューターが構成されます。
私の問題は、django管理サイトを使用してシナリオを追加しているときに、ユーザーがドロップダウンリストでデモを選択し、一部のコンピューターの設定を構成した後、設定のコンピューターが実際にデモに含まれていることを検証する必要があります。
私はdjangoのドキュメントやオンラインサイトに目を通し、考えられるすべてのことを試しましたが、それでもこの作業を行うことはできません。
シナリオフォームのcleaned_dataから「demo」オブジェクトを取得できたものの、フォームで送信された設定にアクセスできないようであるため、カスタムフォーム検証を使用できません。'clean'をオーバーライドしてモデルレベルの検証を行う場合、新しいシナリオではcomputer_setが空であるため、新しいシナリオを追加するときではなく、シナリオを変更したときにのみ機能します。
どんな助けでも大歓迎です。