Django中的反向自引用外键
抱歉,如果这个问题听起来很傻,但我对Django还不太熟悉,找不到答案。
我有一个订单模型,其中有一个自引用的字段:
source = models.ForeignKey(
'self',
help_text = "[redacted]",
verbose_name = "Source Order",
blank = True,
null = True,
)
虽然如果我有一个订单,想知道它的来源,这样做没问题,但我还需要获取这个订单的“子订单”列表,也就是说,找出哪些订单是以这个订单为来源的。请问这需要通过filter()
来实现,还是有更简单、更符合Django风格的方法呢?
1 个回答
7
如果你有一个订单对象,你可以使用反向关系:
child_orders = my_order.order_set.all()
你可能想给source
字段一个更有描述性的related_name
值,这样就可以用这个值来代替上面提到的order_set
。