【发布时间】:2023-04-03 16:45:05
【问题描述】:
我在django-tables2 的新版本中找不到LinkColumn 的替代品。作者指出 LinkColumn 已弃用,不应使用。但是新的linkify 解决方案的文档记录很差,并且没有旧版本的所有功能。比如我有这个专栏:
edit = tables.LinkColumn(
'wagtailadmin_pages:edit', args=[A('page.pk')],
text='Edit'
)
它会显示一个名为 Edit 的 wagtail 管理员编辑页面的链接。使用linkify 根本无法达到同样的效果,因为linkify 仅在您在列上有有效的accessor 时才有效。但是访问器不能为所有行返回相同的静态文本(除非我修改模型以添加一个虚拟属性 - 但是这个特定的模型在 3rd 方包中,无论如何它都会感觉像一个管道胶带解决方案)。
在所有其他情况下,列将不显示链接。我研究了源代码,似乎 django-tables2 > 2.0.0 根本不支持这种情况。
是否有任何简洁易懂的方式来使用linkify 构造带有静态链接文本的链接列?
【问题讨论】:
-
您可以覆盖模型上的
get_absolute_url并传递linkify=True,也许,但这取决于模型。或者,您可以定义一个香草edit = tables.Column(...)并在您的tables.Table子类中创建一个render_edit -
我无法覆盖
get_absolute_url或模型的任何其他属性,因为它来自django-wagtail包。感谢您建议覆盖render_edit方法 - 我非常专注于尝试使讨厌的linkify工作,以至于我完全忘记了尝试其他方法。
标签: django django-tables2