![](/img/trans.png)
[英]How to set an unspecified value to Meta class (How to create a template table class) django_tables2
[英]Django_tables2 How to identify each table when using MultiTableMixin in Django Template
我正在尝试在 Django 模板中的不同位置呈现两个单独的表。 但是,官方文档只展示了如何在循环中呈现表格:
{% for table in tables %}
{% render_table table %}
{% endfor %}
这是有效的,但是,我想根据标识符(例如名称)呈现一个表。 以下代码执行此操作,但并没有说明正在呈现哪个表:
{% render_table tables.0%}
有以下几行:
{% render_table tables.newstable %}
将是理想的。
通过删除 MultiTableMixin 类,然后使用 get_context_data() 呈现表,我取得了轻微的成功,但是,这会破坏分页。
def get_context_data(self, **kwargs):
context = super(TeamHomeTest, self).get_context_data(**kwargs)
team_id = self.kwargs['teamid']
team = Tmteams.objects.get(teamid=team_id)
q1 = Tmteamsusers.objects.all().filter(teamid=team_id)
category_ids = []
categories = nwscategory.objects.all().filter(teamId=team_id)
for cat in categories:
category_ids.append(cat.categoryid)
q2 = nwseditor.objects.filter(categorie_id__in=category_ids)
team_member_list_table = TeamMemberListTable(q1)
team_news_list_table = TeamNewsTable(q2)
context['table1'] = team_member_list_table
context['table2'] = team_news_list_table
context['team'] = team
self.tables=[context['table1'], context['table2']]
return context
我当前的 get_tables() 方法如下所示:
def get_tables(self):
team_id = self.kwargs['teamid']
q1 = Tmteamsusers.objects.all().filter(teamid=team_id)
category_ids = []
categories = nwscategory.objects.all().filter(teamId=team_id)
for cat in categories:
category_ids.append(cat.categoryid)
q2 = nwseditor.objects.filter(categorie_id__in=category_ids)
table1 = TeamMemberListTable(q1)
table1.name = "test"
tables = [
table1,
TeamNewsTable(q2)
]
return tables
在您的模板中,您可以将其渲染为:
{% render_table table1 %}
{% render_table table2 %}
因此,您实际上可以随意命名该表。 它不必是 table1、table2、...
只需确保名称与您在 get_context_data 中的分配相匹配。
例如:
def get_context_data(self, **kwargs):
context = super(TeamHomeTest, self).get_context_data(**kwargs)
team_id = self.kwargs['teamid']
team = Tmteams.objects.get(teamid=team_id)
q1 = Tmteamsusers.objects.all().filter(teamid=team_id)
category_ids = []
categories = nwscategory.objects.all().filter(teamId=team_id)
for cat in categories:
category_ids.append(cat.categoryid)
q2 = nwseditor.objects.filter(categorie_id__in=category_ids)
team_member_list_table = TeamMemberListTable(q1)
team_news_list_table = TeamNewsTable(q2)
context['table_team_member'] = team_member_list_table
context['table_team_news'] = team_news_list_table
context['team'] = team
self.tables=[context['table_team_member'], context['table_team_news']]
return context
HTML:
{% render_table table_team_member %}
{% render_table table_team_news %}
希望这可以帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.