У вас есть два варианта: либо использовать TemplateColumn
, либо написать метод render_FOO
.
Вот пример использования TemplateColumn
(как вы можете видеть, запись добавляется в контекст, который используется для визуализации шаблона, что позволяет вам получить доступ к 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))
Как видите, подход TemplateColumn
, вероятно, немного чище в
ваш случай.