django-tables2 - 将 ManyToMandyColumn 呈现为每个相关对象的单独链接
问题描述
我有一个Unit表,它与Activities具有 ManyToMany 关系。
在我的单元表中呈现活动时,我希望每个活动都成为其自己的详细视图的链接。
我已经尝试了很多这样做的方法,但一直无法找出最好的方法。
我可以使用 lambda 获取 URL:
activities = tables.ManyToManyColumn(verbose_name='Activities', transform=lambda obj: obj.get_absolute_url,)
但我找不到实际呈现该链接的好解决方案。
似乎我应该能够通过访问render_activities()
方法中的每个项目来自定义链接的呈现。但是render_FOO()
使用时方法中的值ManyToManyColumns
似乎不起作用。
解决方案
I ended up using a TemplateColumn to get it to work:
activities = tables.TemplateColumn(empty_values=(),
orderable=False,
template_code='''
{% for activity in record.activities.all %}
<a href="{% url "activity-detail" activity.pk %}">{{activity}}</a>,
{%endfor%}
'''
)