在views.py django中从for循环中选择特定对象

时间:2014-05-05 14:28:16

标签: python django

我希望在django views.py

中逐个选择for循环

views.py

crave = CraveData.objects.filter(person=request.user.id)
    for crave1 in crave:
        #print crave1
        check = Comment.objects.filter(crave=crave1)

comment.model.py

class Comment(models.Model):
    comment_owener = models.ForeignKey(User)
    crave=models.ForeignKey(CraveData, blank = True,null = True)
    reply=models.CharField(max_length=1000, blank = True,null = True)
    unique_id= models.IntegerField(max_length=50, blank = True,null = True)
    date= models.DateTimeField(auto_now_add=True, blank=True)
    def __unicode__(self):
        return self.reply

crave.model.py

class CraveData(models.Model):
    person = models.ForeignKey(User)
    post=models.TextField(blank = True,null = True)

    date= models.DateTimeField(auto_now_add=True, blank=True)
    def __unicode__(self):
        return self.post

在打印crave1时,我得到了与该特定用户相关的渴望数据中的所有对象。在这里,我得到了crave1的打印结果是Post1,Post2。 在这里,我想选择每个渴望,以便我可以分配相关的评论到那个渴望。在这种情况下,我想选择post1,所以我可以将与post1相关的评论分配给自己。 我希望为该用户可用的所有渴望做到这一点。

我在这里尝试使用

crave1.check=Comment.objects.filter(crave=crave1)

所以我收到了这个回复

[<Comment: reply1>, <Comment: Reply1.1>, <Comment: reply1.3>]
[<Comment: reply2>]

但是

[<Comment: reply1>, <Comment: Reply1.1>, <Comment: reply1.3>] 

此评论与post1和

相关联
[<Comment: reply2>] 

此评论与post2渴望有关。

comment.html

<p><strong>{{user.username}} said:</strong></p><br>
                        {% for crave1 in crave %}

                        {{crave1}}<br>
                        {% for pf in check%}
                     {{pf.reply}}<br>
                     {% endfor %}

                     {% endfor %}

因此浏览器中所有这些的结果是 管理员说:

POST1 REPLY2 POST2 REPLY2

基本上我想显示该特定用户的帖子及其相关评论。 请帮助我。

1 个答案:

答案 0 :(得分:1)

您可以像这样使用反向外键关系:

{% for crave1 in crave %}
   {{crave1}}<br>
   {% for comment in crave1.comment_set.all }}
       {{comment.reply}}<br>
   {% endfor %}
{% endfor %}

以下是它的文档。 related_namereverse relationships.