【问题标题】:How can I traverse a reverse generic relation in a Django template?如何在 Django 模板中遍历反向泛型关系?
【发布时间】:2011-01-09 21:36:02
【问题描述】:

我有以下类用于为项目添加书签:

class BookmarkedItem(models.Model):
     is_bookmarked = models.BooleanField(default=False)
     user = models.ForeignKey(User)
     content_type = models.ForeignKey(ContentType)
     object_id = models.PositiveIntegerField()
     content_object = generic.GenericForeignKey()

我正在定义一个反向通用关系如下:

class Link(models.Model):
    url = models.URLField()
    bookmarks = generic.GenericRelation(BookmarkedItem)

在我的一个观点中,我生成了所有链接的查询集并将其添加到上下文中:

links = Link.objects.all()
context = {
     'links': links
}
return render_to_response('links.html', context)

我遇到的问题是如何遍历我的模板中的通用关系。对于每个链接,我希望能够检查 is_bookmarked 属性并根据用户是否已将其添加为书签来更改添加/删除书签按钮。这可以在模板中执行吗?还是我必须在视图中进行一些额外的过滤并传递另一个查询集?

【问题讨论】:

    标签: django generics relationship


    【解决方案1】:

    由于您已经定义了“书签”GenericRelation 字段,您可以对其进行迭代:

    {% for bookmark in link.bookmarks.all %}
    

    【讨论】:

      猜你喜欢
      • 2012-03-08
      • 1970-01-01
      • 2022-06-22
      • 1970-01-01
      • 1970-01-01
      • 2020-04-24
      • 2013-12-07
      • 1970-01-01
      • 2019-07-14
      相关资源
      最近更新 更多