Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django表如何检测表是否为空_Django_Django Templates_Django Views_Django Tables2 - Fatal编程技术网

django表如何检测表是否为空

django表如何检测表是否为空,django,django-templates,django-views,django-tables2,Django,Django Templates,Django Views,Django Tables2,我是django和web开发的新手,基于示例和帮助,我拼凑了一些东西,将模型呈现在django表中。我的模板代码基本如下: {% block content %} {% load static %} {% load render_table from django_tables2 %} <div class="function-page"> <div class="table-form"> <div class="function-con

我是django和web开发的新手,基于示例和帮助,我拼凑了一些东西,将模型呈现在django表中。我的模板代码基本如下:

{% block content %}
{% load static %}
{% load render_table from django_tables2 %}
 <div class="function-page">
     <div class="table-form">
        <div class="function-container">
                {% render_table reviews %}
        </div>
     </div>
 </div>
{% endblock %}
@login_required(login_url="login/")
def review(request):
    table = DummyTable(DummyModel.objects.all())
    form = DummyForm()
    RequestConfig(request, paginate={"per_page": 10}).configure(table)
    return render(request, 'review.html', {'reviews': table, 'DummyForm': form})
这个很好用。但是,我想做的是向用户显示一条消息,说明当数据库表为空时没有记录。在当前设置中,它显示一个空表,其中的列从可用性角度来看可能不是最好的。

执行以下操作:

{% if reviews %}
<div class="function-page">
    <div class="table-form">
       <div class="function-container">
           {% render_table reviews %}
       </div>
    </div>
</div>

{% else %}
<div>
    <p> Message to use </p>
</div>

{% endif %}
{%if-reviews%}
{%render_table reviews%}
{%else%}
要使用的消息

{%endif%}
最简单的方法可能是使用模板。假设您的变量为空,则称为
reviews

{% block content %}
{% load static %}
{% if reviews %} 
   {% load render_table from django_tables2 %}
      <div class="function-page">
         <div class="table-form">
            <div class="function-container">
                {% render_table reviews %}
           </div>
         </div>
       </div>
{% else %} 
<span> Whatever holding response/error message you want. </span> 
{% endif %}
{% endblock %}
要使用消息,您需要在模板中包含类似的内容:

{% if messages %}
<ul class="messages">
    {% for message in messages %}
    <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
    {% endfor %}
</ul>
{% endif %}
{%if消息%}
    {消息%中的消息为%s} {{message}} {%endfor%}
{%endif%}

或者你可以两者兼得!:)

有两种选择。您可以在
class Meta

class Reviews(tables.Table):

    class Meta:
        empty_text = _("There are no reviews yet")
或者您可以在模板内部检查它,避免以这种方式呈现表

{% if reviews_table.data.list %}
    {% render_table reviews_table %}
{% else %}
    <h1>There are no reviews yet</h1>
{% endif %}
{%if检查\u table.data.list%}
{%render_table reviews_table%}
{%else%}
目前还没有评论
{%endif%}

根据
表格进行测试。分页的行
当表格没有数据时,它将为空并评估为
False

他们在
django_表2/templates/django_表2/bootstrap.html:~26
template:

{% for row in table.paginated_rows %}
    ...
{% empty %}
    ... {{ table.empty_text }}
{% endfor %}

米兰回答对我有效,但从if条件中删除“.list”:

{% if reviews_table.data.list %}
    {% render_table reviews_table %}
{% else %}
    <h1>There are no reviews yet</h1>
{% endif %}
{%if检查\u table.data.list%}
{%render_table reviews_table%}
{%else%}
目前还没有评论
{%endif%}

我认为
reviews
表始终是一个有效变量。有没有办法检查是否为空?如果为空,则不会执行
If
语句。根据我对另一个答案的评论,我认为reviews表始终是一个有效变量。有没有办法检查是否为空?对有效但为空的变量使用{%if variable%},它的计算结果通常为False,ime(请参阅。但是,如果需要真正的防弹检查,可以执行
{value | default:“nothing”}
-从Ok开始,当记录计数为0时,我在我的视图中将其显式设置为None,并且可以正常工作。太好了!我会冒险发现上面代码中未包含的
DummyTable
对象正在生成模板当前读取的内容,因此在
{%if%}中不会计算为
False
statement。很高兴您得到了一些有用的东西。:)是的,这可能是因为它是一个django tables实例,可能导致了这个问题;)谢谢你的帮助。
{% if reviews_table.data.list %}
    {% render_table reviews_table %}
{% else %}
    <h1>There are no reviews yet</h1>
{% endif %}