django-tables2 linkcolumn同一单元格中的多个项目

时间:2011-06-08 06:52:30

标签: django django-tables2

我想使用tables.LinkColumn将多个“项目”添加到同一个单元格。

这样的事情:

column_name = tables.LinkColumn('some_url_edit', args=[A('pk')], attrs={'class':'tbl_icon edit'})
column_name += tables.LinkColumn('some_url_del', args=[A('pk')], attrs={'class':'tbl_icon delete'})
column_name += ...

这甚至可能吗?或者我应该创建自己的表格视图,而不是django-tables

谢谢!

2 个答案:

答案 0 :(得分:10)

此处有两个选项,可以使用TemplateColumn,也可以使用render_FOO方法。

以下是使用TemplateColumn的示例(您可以看到记录已添加到用于呈现模板的上下文中,因此您可以通过{{1}访问pk }:

record.pk

使用TEMPLATE = ''' <a href="{% url some_url_edit record.pk %}" class="tbl_icon edit">Edit</a> <a href="{% url some_url_del record.pk %}" class="tbl_icon delete">Delete</a> ''' class MyTable(tables.Table): column_name = tables.TemplateColumn(TEMPLATE)

的示例
render_FOO

正如您所看到的,from django.utils.safestring import mark_safe from django.core.urlresolvers import reverse class MyTable(tables.Table): column_name = tables.Column() def render_column_name(self, record): edit_url = reverse("some_url_edit", args=[record.pk]) del_url = reverse("some_url_del", args=[record.pk]) return mark_safe('''<a href="%s" class="tbl_icon edit">Edit</a> <a href="%s" class="tbl_icon delete">Delete</a>''' % (edit_url, del_url)) 方法可能更清晰一些 你的情况。

答案 1 :(得分:-1)

对于列定义为tables.Column()的示例,渲染foo的示例不适用于我。 现在我将TemplateColumn与render_FOO一起使用。

TEMPLATE = "<text></text>"
column_name = tables.TemplateColumn(TEMPLATE)