Django表2不包括';行不通

Django表2不包括';行不通,django,Django,我将Django 1.8.7与Django表21.3.0一起使用。 我正在尝试使用ModelForm构建一个表(下面的示例)。当我尝试使用exclude隐藏列时,它仍然显示所有列。排除在这里似乎没有任何效果 my models.py的一部分: class Event(models.Model): Name = models.CharField (max_length = 45, blank = False, null = False) Date = models.DateTime

我将Django 1.8.7与Django表21.3.0一起使用。 我正在尝试使用ModelForm构建一个表(下面的示例)。当我尝试使用exclude隐藏列时,它仍然显示所有列。排除在这里似乎没有任何效果

my models.py的一部分:

class Event(models.Model):
    Name = models.CharField (max_length = 45, blank = False, null = False)
    Date = models.DateTimeField (auto_now_add=True)
    Text = models.CharField (max_length = 64, blank = False, null = False)
    class Meta:
        ordering = ["-Date", "Name"]
        verbose_name = "Event"
        verbose_name_plural = "Events"
        def __str__(self):
            return self.Name


class Event_Form(ModelForm):
    class Meta:
        model=Event
        exclude = ('Date',)
my views.py的一部分:

def dbtest_event(request,):
    return render(request, 'dbtest_event.html', {"Title":"Events",
    'dbtest_event':Event.objects.all()})
以及使用该表的html文件:

{% extends "dbtest.html" %}
{% load render_table from django_tables2 %}
{% load static %}
{% block content %}
    {% render_table dbtest_event %}
{% endblock %}

提前感谢您的任何帮助或想法

您的视图代码实际上没有引用
事件表单
类,因此没有理由关注您的排除

从文档中:

虽然简单,但直接将查询集传递给{%render_table%}不允许任何自定义。为此,必须定义一个自定义表类

因此,必须显式定义表

class EventTable(django_tables2.Table):

    class Meta:
        model = Event
        exclude = ('Date',)
然后确保表在模板上下文中可用

def dbtest_event(request,):
    table = EventTable(Events.objects.all())
    RequestConfig(request).configure(table)
    return render(request, 'dbtest_event.html', {
        "Title":"Events",
        'dbtest_event_table': table,
    })
(如果不需要基于GET参数进行分页或筛选,则可以省略
RequestConfig
行。)


最后使用
{%render\u table dbtest\u event\u table%}

您的视图代码实际上没有引用
事件表单
类,因此没有理由关注您的排除

从文档中:

虽然简单,但直接将查询集传递给{%render_table%}不允许任何自定义。为此,必须定义一个自定义表类

因此,必须显式定义表

class EventTable(django_tables2.Table):

    class Meta:
        model = Event
        exclude = ('Date',)
然后确保表在模板上下文中可用

def dbtest_event(request,):
    table = EventTable(Events.objects.all())
    RequestConfig(request).configure(table)
    return render(request, 'dbtest_event.html', {
        "Title":"Events",
        'dbtest_event_table': table,
    })
(如果不需要基于GET参数进行分页或筛选,则可以省略
RequestConfig
行。)


最后使用
{%render\u table dbtest\u event\u table%}

我不明白为什么模型表单元中的排除值会自动转换为表的元。你能把代码贴在定义表格的地方吗?i、 e.对django_tables进行子类化的东西2.Table?据我所知,这个表并不是真正创建的。我将用我的views.py的一部分和html文件来更新这个问题,这就是我认为与表有关的所有内容。您只是在使用
{%render\u table%}
标记吗?是的,我只是用它在html文件中创建表,我不明白为什么ModelForm元中的排除值会自动转换为表的元。你能把代码贴在定义表格的地方吗?i、 e.对django_tables进行子类化的东西2.Table?据我所知,这个表并不是真正创建的。我将用我的views.py的一部分和html文件更新这个问题,我认为这就是与表有关的一切。你只是在使用
{%render\u table%}
标记吗?是的,我只是用它在html文件中创建表。谢谢,这对我很有用。我还有最后一个问题:是否可以用ID而不是日期来做这件事?我试过你的方法,但没用。我想这是因为数据库定义的属性不是我。您是否使用了小写形式的
id
(它在表标题中显示为'id',但Python中的属性名称是
id
)?就是这样,现在它可以正常工作了。谢谢你的帮助!谢谢你,这对我有用。我还有最后一个问题:是否可以用ID而不是日期来做这件事?我试过你的方法,但没用。我想这是因为数据库定义的属性不是我。您是否使用了小写形式的
id
(它在表标题中显示为'id',但Python中的属性名称是
id
)?就是这样,现在它可以正常工作了。谢谢你的帮助!