如何获取相关项的列表并在Django中应用模板过滤器

时间:2013-12-09 17:56:49

标签: django django-models

我有一个自定义过滤器,它通过指定的字符连接项目数组。例如,它将转向:

在视图中:

test_array = ['one', 'two', 'three', 'four']

在模板中:

{{ test_array |joinby:","  }}

输出:

one, two, three, four

我需要将相同的过滤器应用于模型中相关项的查询集。到目前为止我试过这个:

{{ user.related_model.all.name|joinby:","  }}

然而它什么也没有返回。让这种类型的查询起作用的最佳方法是什么?

1 个答案:

答案 0 :(得分: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 %}