使用动态链接创建LinkColumn

时间:2018-03-19 10:35:33

标签: django-tables2

如何根据请求网址将视图名称动态传递给LinkColumn? 例如:

# called from example.com/foo
col = LinkColumn('foo_detail', args=[A('id')])

# called from example.com/bar
col = LinkColumn('bar_detail', args=[A('id')])

我可以通过__init__()方法做一些事情,但是我需要请求对象来决定我需要传递给LinkColumn的哪个视图名称,而这是缺失的。

1 个答案:

答案 0 :(得分:1)

有趣的用例,我认为目前没有直接的方法。

解决方法是在您正在显示的模型上使用get_absolute_url,如果视图之间有不同的话。如果您将viewname=None传递给LinkColumn,则会使用record.get_absolute_url()中的网址。

解决此问题最实用的方法是TemplateColumn,其中包含一个小模板来实现不同的网址。