如何使用非固定方向处理Django through_fields

时间:2019-01-08 15:01:18

标签: django django-models django-rest-framework

Django的ManyToManyField through_fields属性采用格式为(foreign_key_to_intermediate_model, foreign_key_from_intermediate_to_target_model)的元组

我的数据结构本质上是这样的(为示例简化)

class Person(models.Model):
    name = models.CharField()
    relations = models.ManyToManyField(
                                       Person, 
                                       through='Relationship', 
                                       through_fields=(???))

class Relationship(models.Model):
    child = models.ForeignKey(Person)
    parent = models.ForeignKey(Person)
    holiday_card_sent = models.BooleanField()

我需要注释这种关系(他们发送了卡),但是一个人在不同的关系中既是孩子又是父母。关系有方向性,但没有人。一个人还将有多个孩子和多个父母。

感觉好像我在这里遗漏了一些明显的东西。创建对象时,是否应该只是将“人员”推到正确的字段?这样会不会失去Django通常会提供的查询性能?

0 个答案:

没有答案