我想在django项目的html模板中添加一个if
函数。
如果变量datas为空,则将显示文本“结果为空”;如果变量datas不为空,则将显示数据表。
这是我写的,但是会引发错误
Invalid block tag on line 13: 'if(isEmpty($('#datas')))', expected 'endblock'.
Did you forget to register or load this tag?
我该如何处理?
{% if(isEmpty($('#datas'))) %}
<h3>The results is null.</h3>
{% else %}
<table style="table-layout:fixed;">
<tr>...</tr>
<tr>
{% for i in datas %}
<td>{{ i.1 }}</td>
</tr>
{% endfor %}
</table>
{% endif %}
答案 0 :(得分:1)
我认为您可以使用empty标签。像这样使用它:
<table style="table-layout:fixed;">
<tr>...</tr>
<tr>
{% for i in datas %}
<td>{{ i.1 }}</td>
</tr>
{% empty %}
<h3>The results is null.</h3>
{% endfor %}
但是,如果您想事先检查datas
是否为空,那么我认为最好在视图中进行操作。您可以尝试这样:
def some_view(request):
context = {}
datas = Data.objects.all()
if datas.exists():
context['data_exists'] = True
context['datas'] = datas
return render(request, 'template.html', context)
并使用它作为模板:
{% if not data_exists %}
<h3>The results is null.</h3>
{% else %}
....
答案 1 :(得分:1)
您可以直接使用if条件
如果您要从视图发送数据
视图
def index(request):
datas = None
context = {"datas":datas}
return render(request, "index.html", context)
模板
{% if datas %}
<!-- your table -->
{% else %}
<h3>The results is null</h3>
{% endif %}