python django 如何在模板中按当前用户过滤 object_set.all

1 投票
1 回答
623 浏览
提问于 2025-04-16 04:36

我在使用Django的时候遇到了问题,想跟大家解释一下。我的需求是要显示当前用户对书架上书籍的评分。

谢谢大家!

1 个回答

2

在模板中,有一种方法可以做到这一点,那就是定义一个自定义过滤器。这个自定义过滤器可以接受一个查询集和当前登录的用户作为参数,然后进行必要的过滤。

@register.filter
def filter_by_user(queryset, user):
    """Filter the queryset by (currently logged in) user"""
    return queryset.filter(added_by = user)

然后在模板中使用:

<td>{{ book.rating_set.all|filter_by_user:user|safeseq|join:", " }}</td>

撰写回答