通过ManyToMany链接的模型访问另一个对象的属性

时间:2013-06-16 04:52:35

标签: django templates many-to-many models

这是我的两个模特

    class Category(models.Model):
        name = models.CharField(max_length = 50)
        description = models.CharField(max_length = 1000)
        created = models.DateTimeField(auto_now_add=True)
        def __unicode__(self, ):
            return self.name

    class Post(models.Model):
        subject = models.CharField(max_length=50, blank=True)
        description = models.CharField(max_length=1000)
        created = models.DateTimeField(auto_now_add=True)
        category = models.ManyToManyField(Category)

        def __unicode__(self, ):
           return self.subject

我在模板中显示每个帖子的主题,描述和日期。但我也想显示每个帖子的相应类别。

这是我观点的一部分

def index(request):
    posts = Post.objects.order_by("-created")
    return render(request,'posts/index.html', {'posts':posts})

然后我如何尝试在模板中显示它:

    {% for post in posts %}
        <div>
           {{ post.subject }}<br />
            {{ post.description }}<br />
            {{ post.created }} | of {{ post.category }}
        </div>
    {% endfor %}

但是这个类别不会出现,我得到的只是

<django.db.models.fields.related.ManyRelatedManager object at 0x7ff7e40a0c90>

我已经尝试过post.category.name和其他随机组合,但它不提供任何内容或解析错误。我不知道如何显示类别。

1 个答案:

答案 0 :(得分:0)

那是Manager。像使用任何其他Manager一样使用它(例如Post.objects)。

{% for category in post.category.all %}