繁体   English   中英

Django_tables2 data_list

[英]Django_tables2 data_list

我是django和django_tables2的新手。 我正在尝试在我的应用程序视图中使用django_tables2创建表。 我试图将此链接用作教程。在我的IndexView中,我具有以下内容:

在我看来

class IndexView(generic.ListView):
    model = Post.objects.all()
    template_name = 'post/index.html'
    table = Post(data_list)
    RequestConfig(request).configure(table)

在我的index.html中:

{% load render_table from django_tables2 %}
{% block content %}
    <h1>Posts</h1>
    {% render_table post_list %}
{% endblock %}

我收到以下错误:

名称'data_list'未定义

如何导入和使用data_list?

谢谢你的帮助。

您的视图如下所示:

def IndexView(request):
    template_name = 'post/index.html'
    return render(request, template_name, {"post_list": Post.objects.all()})

我假设您正在尝试在表格中显示所有帖子。 这样就完成了:

模型= Post.objects.all()

然后,在表中填充以下内容:

table = PostTable(模型)

您缺少表格类型,是否有一个table.py?

而且data_list是未定义的,它是django_tables2中的变量,不是某种已定义的类型。 您需要使data_list等于某个值(例如模型),因为这就是您试图填充表时的样子。

如果未定义PostTable,请首先在views.py中对其进行定义,例如以下示例:

class ProjectTable(tables.Table): 
    title = tables.LinkColumn('project-detail',args=[A('pk')],verbose_name="Title")
    amount = tables.Column(verbose_name="Project Funds")
    start = tables.Column(verbose_name="Project Started")
    end = tables.Column(verbose_name="Project Ended")
    location = tables.Column(verbose_name="Project Location")

然后用查询集填充该表,

def list_projects(request):
    projects = Project.objects.all()
    etable = ProjectTable(projects)
    RequestConfig(request, paginate={"per_page": 7}).configure(etable)
    return render(request, "projectsapp/list.html", {'table':etable})

因此,就像示例中的data_list等效于项目一样,这意味着您必须用从FOO.objects.all()生成的查询集填充PostTable。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM