最初に、多対 1 ではなく、1 対多の関係を作ろうとしていることを明確にしたいと思います。ForeignKeys がどのように機能するかは既に理解しています。
説明のために、モデルを単純化しました。実際の実装では、これよりもはるかにフィールドが豊富です。
と呼ばれるモデルがありColumnDefinition
ます:
class ColumnDefinition(Model):
column_name = CharField(max_length=32)
column_type = PositiveSmallIntegerField()
column_size = PositiveSmallIntegerField(null=True, blank=True)
レジストリがあると思います。各レジストリには、入力定義と出力定義用の個別の列セットがあります。私がやろうとしていることを示すために、そこに理論的な「OneToManyField」を入れました。
class Registry(Model):
input_dictionary = OneToManyField(ColumnDefinition)
output_dictionary = OneToManyField(ColumnDefinition)
created_date = DateTimeField(auto_now_add=True, editable=False)
AColumnDefinition
はこれまでに 1 つのレジストリにのみ関連付けられています。したがって、多対多の関係ではありません。ForeignKey
逆の関係を作成するために代わりにを配置するColumnDefinition
と、単一の逆しか作成できませんが、入力と出力の両方の逆が必要です。
ColumnDefinition
回避できるのであれば 、「column_registry_type」フィールドを追加するような面倒なことはしたくありません。
この問題を解決する方法について誰か良いアイデアがありますか?
ありがとう!