2013-02-15 2 views
3

Извините, если это глупый вопрос, но я немного новичок в Django и не могу найти ответ.Обратный самовольный внешний ключ в Django

У меня есть модель заказа с автореферентным полем:

source = models.ForeignKey(
    'self', 
    help_text = "[redacted]", 
    verbose_name = "Source Order", 
    blank = True, 
    null = True, 
) 

В то время как это работает хорошо, если у меня есть орден, и я хочу знать его источник, я также должен получить список заказа, «дети» - то есть список ордеров, для которых этот заказ является источником. Нужно ли это делать через filter() или есть хороший способ Django-y?

ответ

5

Если у вас есть объект заказа, вы можете использовать reverse relationship:

child_orders = my_order.order_set.all() 

Вы можете дать source полю более описательный related_name значение, которое будет использоваться вместо order_set выше.

+0

Это сделало это, и это наверняка звучит как правильный ответ (tm). Спасибо! – charredUtensil

Смежные вопросы