Mis*_*ion 4 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 += ...
Run Code Online (Sandbox Code Playgroud)
这甚至可能吗?或者我应该创建自己的表视图,没有django-tables.
谢谢!
bra*_*ers 10
这里有两个选项,可以使用a TemplateColumn,也可以编写render_FOO方法.
下面是一个使用的示例TemplateColumn(正如您所看到的,记录被添加到用于呈现模板的上下文中,因此允许您访问pkvia 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)
Run Code Online (Sandbox Code Playgroud)
示例使用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))
Run Code Online (Sandbox Code Playgroud)
正如您所看到的那样,TemplateColumn在您的情况下,这种方法可能更清晰一些.