django模型无法访问父子记录
我有一个非常奇怪的问题,我有一个与自身连接的查询集,当我尝试使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这里没有什么神秘的。并非所有对象都有父对象:第 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 viai.parent
.