您在这里有两个选择,要么使用 a TemplateColumn
,要么编写一个render_FOO
方法。
这是一个使用TemplateColumn
( 如您所见,记录已添加到用于呈现模板的上下文中的示例,从而允许您访问pk
via 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))
如您所见,TemplateColumn
在您的情况下,该方法可能更简洁一些。