如何从django表中删除底部项目符号

时间:2015-01-05 14:56:34

标签: python django django-models django-templates django-views

我使用django_table2

生成下表
Semester    Actual  Prediction
Spring 2014     209     199

    *1 coe

学期,实际和预测是列名。我的桌子正是我需要的。但是,在每个表的底部,我总是拥有模型中的项目数。我不想要那个子弹。我知道它在django_table2中的默认值。有没有办法删除它?以下是另一个例子:

Department  Semester        Actual  Prediction
MIE         2014 Spring     202     210
MIE         2015 Fall       213     200
MIE         2015 Spring     11      12

*3 departments

1 个答案:

答案 0 :(得分:0)

最简单的方法(对我而言)是在您的模板目录中创建此路径( your_templates_dir /django_tables2/tables.html),其中包含以下内容:

{% spaceless %}
{% load django_tables2 %}
{% load i18n %}
{% if table.page %}
<div class="table-container">
{% endif %}
{% block table %}
<table{% if table.attrs %} {{ table.attrs.as_html }}{% endif %}>
    {% nospaceless %}
    {% block table.thead %}
    <thead>
        <tr>
        {% for column in table.columns %}
            {% if column.orderable %}
            <th {{ column.attrs.th.as_html }}><a href="{% querystring table.prefixed_order_by_field=column.order_by_alias.next %}">{{ column.header }}</a></th>
            {% else %}
            <th {{ column.attrs.th.as_html }}>{{ column.header }}</th>
            {% endif %}
        {% endfor %}
        </tr>
    </thead>
    {% endblock table.thead %}
    {% block table.tbody %}
    <tbody>
        {% for row in table.page.object_list|default:table.rows %} {# support pagination #}
        {% block table.tbody.row %}
        <tr class="{{ forloop.counter|divisibleby:2|yesno:"even,odd" }}"> {# avoid cycle for Django 1.2-1.6 compatibility #}
            {% for column, cell in row.items %}
                <td {{ column.attrs.td.as_html }}>{% if column.localize == None %}{{ cell }}{% else %}{% if column.localize %}{{ cell|localize }}{% else %}{{ cell|unlocalize }}{% endif %}{% endif %}</td>
            {% endfor %}
        </tr>
        {% endblock table.tbody.row %}
        {% empty %}
        {% if table.empty_text %}
        {% block table.tbody.empty_text %}
        <tr><td colspan="{{ table.columns|length }}">{{ table.empty_text }}</td></tr>
        {% endblock table.tbody.empty_text %}
        {% endif %}
        {% endfor %}
    </tbody>
    {% endblock table.tbody %}
    {% block table.tfoot %}
    <tfoot></tfoot>
    {% endblock table.tfoot %}
    {% endnospaceless %}
</table>
{% endblock table %}

{% if table.page %}
{% with table.page.paginator.count as total %}
{% with table.page.object_list|length as count %}
{% block pagination %}
<ul class="pagination">
    {% if table.page.has_previous %}
    {% nospaceless %}{% block pagination.previous %}<li class="previous"><a href="{% querystring table.prefixed_page_field=table.page.previous_page_number %}">{% trans "Previous" %}</a></li>{% endblock pagination.previous %}{% endnospaceless %}
    {% endif %}

    {% if table.page.has_previous or table.page.has_next %}
    {% nospaceless %}{% block pagination.current %}<li class="current">{% blocktrans with table.page.number as current and table.paginator.num_pages as total %}Page {{ current }} of {{ total }}{% endblocktrans %}</li>{% endblock pagination.current %}{% endnospaceless %}
    {% endif %}

    {% if table.page.has_next %}
    {% nospaceless %}{% block pagination.next %}<li class="next"><a href="{% querystring table.prefixed_page_field=table.page.next_page_number %}">{% trans "Next" %}</a></li>{% endblock pagination.next %}{% endnospaceless %}
    {% endif %}
</ul>
{% endblock pagination %}
{% endwith %}
{% endwith %}
</div>
{% endif %}
{% endspaceless %}

这种方法会覆盖你通过django_table2模板标签创建的所有表格,并且对即将推出的django_table2版本不会有必要的工作,但是如果你想保留一个特定的版本,我会好的(在我的案例0.15.0)。

另一种更具可扩展性的方法应该适用于未来的版本(我推荐)是通过继承Table,就像在django-tables2 documentation上所描述的那样。