正确的行数,但它们是空的

时间:2018-03-26 19:13:52

标签: django django-tables2

我试图显示一些表格,但它们是空的。得到我的部分是行数是正确的,但它们是完全空白的。如果表有9个条目,我会得到9个空行。

相同的代码适用于不同的表

tables.py:

class VouchersTable(tables.Table):
    class meta:
        model = Vouchers
        fields = ('event_name', 'pk', 'valid_start', 'valid_end', 'lab_duration', 'user_email', 'redeem_date' )

views.py:

class ReportsView(LoginRequiredMixin, TemplateView):
    template_name = 'reports.html'

    def get_context_data(self, **kwargs):
        context = super(ReportsView, self).get_context_data(**kwargs)
        vouchers = VouchersTable(Vouchers.objects.all())
        RequestConfig(self.request, paginate=False).configure(vouchers)
        context['vouchers'] = vouchers

        return context

reports.html:

{% extends "base.html" %}
{% load render_table from django_tables2 %}

{% block content %}
  {% render_table vouchers %}
{% endblock content %}

models.py:

class Vouchers(models.Model):
    creator_uid = models.IntegerField()
    user_id = models.IntegerField()
    username = models.CharField(max_length=255)
    user_email = models.CharField(max_length=100)
    event_name = models.CharField(max_length=255)
    event_code = models.IntegerField()
    valid_start = models.IntegerField()
    valid_end = models.IntegerField()
    redeemed = models.IntegerField()
    redeem_date = models.IntegerField()
    lab_version = models.CharField(max_length=40)
    lab_model = models.IntegerField()
    lab_id = models.IntegerField()
    lab_duration = models.IntegerField()

生成的html(删除空行):

<div class="table-container">
<table>
    <thead>
        <tr>
        </tr>
    </thead>
    <tbody> 
        <tr class="even">
        </tr>
        <tr class="odd">
        </tr>
        <tr class="even">
        </tr>
        <tr class="odd">
        </tr>
        <tr class="even">
        </tr>
        <tr class="odd">
        </tr>
        <tr class="even">
        </tr>
        <tr class="odd">
        </tr>
        <tr class="even">
        </tr>
    </tbody>
</table>
</div>

1 个答案:

答案 0 :(得分:0)

哦好吧...... 你已经宣布了这样的表:

class VouchersTable(tables.Table):
    class meta:
        model = Vouchers
        fields = ('event_name', 'pk', 'valid_start', 'valid_end', 'lab_duration', 'user_email', 'redeem_date' )

正确的撰写方式是class Meta M eta,大写为M):https://github.com/jieter/django-tables2