[英]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.