Модель django не может получить доступ к родительской дочерней записи - PullRequest
0 голосов
/ 05 мая 2011

У меня очень странная проблема, у меня есть набор запросов, который присоединяется к самому себе, когда я пытаюсь получить доступ к информации родительской записи, используя [n], она работает, а когда я перебираю ее, нет.Имеет ли это смысл?ниже мой пример

>>> a=Main.objects.select_related('main', 'parent').filter(list__is_active=True, maini18n__language='en', list__listi18n__language='en')
>>> a[10]._parent_cache.id
2L
>>> for i in a:
...  print i._parent_cache.id
... 
Traceback (most recent call last):
  File "<console>", line 2, in <module>
AttributeError: 'NoneType' object has no attribute 'id'

1 Ответ

1 голос
/ 05 мая 2011

Здесь нет никакой тайны. Не у всех объектов есть родитель: у пункта 10 есть, но у некоторых (включая первый) нет. Вы можете проверить i.parent_id, прежде чем получить доступ к связанному элементу.

Также обратите внимание, что _parent_cache - это деталь реализации: вы действительно должны обращаться к связанным объектам через i.parent.

...