4

假设我有以下表类:

class TestTable(tables.Table):
    id = tables.Column()
    description = tables.Column()

    def render_description(self, value):
        return mark_safe('''<a href=%s>%s</a>''' % (???, value))

是否可以在渲染方法中访问“id”列的值,以便我可以建立一个指向 id 但显示取决于“描述”字段的文本的链接?

提前致谢!

4

2 回答 2

9

快速浏览一下render_FOO的文档,您似乎可以这样做:

class TestTable(tables.Table):
    id = tables.Column()
    description = tables.Column()

    def render_description(self, value, record):
        return mark_safe('''<a href=%s>%s</a>''' % (record.id, value)

不确定行记录的确切形状,因此可能是record['id'],到文档的链接应该有助于探索......

于 2012-02-04T13:13:57.090 回答
1

@Darb 谢谢,该选项非常有效。但是我想知道是否有任何方法可以使用访问器而不是破解文本列来输出 html...

就我而言,我使用

# tables.py
from django.core.urlresolvers import reverse
from django.utils.safestring import mark_safe
#...

class FieldTable(tables.Table):
allows__count = tables.LinkColumn(viewname=None, attrs={'td': {'class': 'leftA'}},
                                  verbose_name='No. of Allowed values')

    def __init__(self, *args, **kwargs):
    super(FieldTable, self).__init__(*args, **kwargs)

    def render_allows__count(self, value, record):
    if value!=0:
        a = reverse(viewname='dict:field_detail',
                       kwargs=
                       {'field_slug': record.slug,
                        'extract_slug': record.extract.slug,
                        'system_slug': record.extract.system.slug})
        return mark_safe('<a href={}>{}</a>'.format(a, value))

但是我想替换mark_safe,用于调用allows__count的访问器并返回反向超链接和值的东西......

无论如何都知道

于 2016-06-24T18:59:05.120 回答