【发布时间】:2014-03-23 22:15:54
【问题描述】:
我最近花了一些时间在 django-fluent-cmets 中进行挖掘。我知道一点 django,但我完全被这个包的工作原理难住了。
基本上,我不明白获取对象的 cmets 的实际查询是在哪里进行的。
在函数“FluentCommentsList(node)”中,包含 cmets 的查询集似乎来自第 67 行的此调用:
comment_list = context['comment_list']'
我不知道填充“comment_list”的实际查询是在哪里进行的。看起来 models.py 中的函数 get_comments_for_model 可能与此有关,但我尝试将其注释掉,并且 cmets 仍然出现在页面上。
最后,我不明白外键与用户的关系是如何工作的。在 cmets 上的数据库中 user_id 是用户模型的外键,但是当我将 FluentCommentsList 更改为这样时:
class FluentCommentsList(Node):
def render(self, context):
coms = context['comment_list']
for c in coms:
print c.user_id.user_picture
这会导致下面的错误,似乎应该是用户模型的内容被解释为 long。
'long' object has no attribute 'user_picture'
有人可以解释发生了什么吗?我真正想做的就是通过用户的外键访问 user_picture 字段,但更好地理解代码也会非常好。
非常感谢,
【问题讨论】: