我创建了一个自定义模板标记来查询对象列表,但每个对象都有一个与之关联的标记。我想将一个对象作为过滤器传递到我的模板标签中,以便在我的模板中仅显示某些标记对象。
模板标记
@register.inclusion_tag(
'tags/_documents_snippets.html',
takes_context=True
)
def document_snippets(context):
Document = get_document_model()
documents = Document.objects.all()
return {
'documents': documents,
'request': context['request'],
}
模板
<div class="col-md-12">
<ul class="c-content-list-1 c-separator-dot c-square">
{% for doc in documents %}
<li><a href="{{ doc.url }}">{{ doc.title }}</a></li>
{% endfor %}
</ul>
</div>
代码
{% document_snippets %}
我可以执行{% document_snippets|tags="AO Now" %}
答案 0 :(得分:1)
您可以像模板标记一样向常规函数添加任意参数。例如:
@register.inclusion_tag(
'tags/_documents_snippets.html',
takes_context=True
)
def document_snippets(context, **kwargs):
Document = get_document_model()
documents = Document.objects.filter(**kwargs)
return {
'documents': documents,
'request': context['request'],
}
然后用:
来调用它{% document_snippets tags="AO Now" %}