如何获取相关项目的列表并在 Django 中应用模板过滤器
Posted
技术标签:
【中文标题】如何获取相关项目的列表并在 Django 中应用模板过滤器【英文标题】:How to get a list of related items and apply a template filter in Django 【发布时间】:2013-12-09 17:56:48 【问题描述】:我有一个自定义过滤器,它通过指定字符连接项目数组。比如它会转:
在视图中:
test_array = ['one', 'two', 'three', 'four']
在模板中:
test_array |joinby:","
输出:
one, two, three, four
我需要将相同的过滤器应用于模型中相关项目的查询集。到目前为止我已经尝试过了:
user.related_model.all.name|joinby:","
但是它什么也不返回。使此类查询起作用的最佳方法是什么?
【问题讨论】:
【参考方案1】:您可能希望保持模板干净,并创建一个过滤器,或在您的视图中处理它。
在视图中:
def my_view(request):
#blah
user_followers = request.user.related_model.values_list('name', flat=True)
在模板中
user_followers | joinby: ","
或者
注册一个过滤器
@register.filter(name='related_names')
def get_related_names(user):
user_followers = user.related_model.values_list('name', flat=True)
return ", ".join(user_followers)
在模板中:
% related_names %
【讨论】:
以上是关于如何获取相关项目的列表并在 Django 中应用模板过滤器的主要内容,如果未能解决你的问题,请参考以下文章
Django:如何从与用户相关的子查询集中获取不同的父列表?
Django:如何获取列表相关的 ForeignKey 记录?
如何使用列表中显示的相关项目的下拉列表使特定模型类的 Django contrib Admin 更改列表可编辑?
如何从自定义列表视图中获取选定项目并在 toast 消息中打印?