django模型无法访问父子记录

发布于 2024-11-05 07:53:41 字数 499 浏览 1 评论 0原文

我有一个非常奇怪的问题,我有一个与自身连接的查询集,当我尝试使用 a[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'

I have a very strange problem, I have a queryset that join with itself, when I try to access the parent record information using a[n] it works, when I loop through it doesn't. Does that make sense? below is my example

>>> 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'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

赴月观长安 2024-11-12 07:53:41

这里没有什么神秘的。并非所有对象都有父对象:第 10 项有,但有些对象(包括第一个)没有。在访问相关项目之前,您可能需要检查i.parent_id

另请注意,_parent_cache 是一个实现细节:您实际上应该通过i.parent 访问相关对象。

There's no mystery here. Not all the objects have a parent: item 10 does, but some (including the first) don't. You may want to check i.parent_id before accessing the related item.

Also, note that _parent_cache is an implementation detail: you should really be accessing the related objects via i.parent.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文