0
私は2つのモデルのフィールドがForeignKeyに接続されたGenericForeignKeyを持つ方法がありますか?複数のモデルのDjango GenericForeignKeyフィールド
私は2つのモデルのフィールドがForeignKeyに接続されたGenericForeignKeyを持つ方法がありますか?複数のモデルのDjango GenericForeignKeyフィールド
私は自分のライブラリを書く必要がありました。 https://github.com/BrnoPCmaniak/django-egfk だから今、私はこれを行うことができます。
class Main(models.Model):
content_type = models.ForeignKey(
ContentType, on_delete=models.CASCADE, blank=True, null=True)
class Child(models.Model):
object_id = models.PositiveIntegerField()
main = models.ForeignKey(Main, related_name="child")
content_object = EnhancedGenericForeignKey('main.content_type', 'object_id')
使用例:
>>> from test_egfk.models import Main, Child, TestSampleModel
>>> m = Main()
>>> print(m.content_type)
None
>>> m.save()
>>> t = TestSampleModel(text="Test")
>>> t.save()
>>> t.text
'Test'
>>> c = Child(main=m, content_object=t)
>>> c.save()
>>> Main.objects.last().content_type
<ContentType: test sample model>
>>> c.content_object
<TestSampleModel: TestSampleModel object>
あなたは二つのモデルにFKを持つようにしたい、ということを意味しますか? – DurgaDatta
私は1つのメインオブジェクトとすべてのを指す子オブジェクトの束を持っているのは同じではありません他の同じ型のモデル。一貫性を持ち、データの複製を作成しないために、すべての子モデルが指摘しなければならないメインモデルにcontent_typeを1回だけ格納したいと思います。 –