如何在Django HTML模板中添加功能

时间:2018-12-08 06:56:58

标签: html css django

我想在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 %}

2 个答案:

答案 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 %}