首页 > 解决方案 > 将 ManyToMandyColumn 呈现为每个相关对象的单独链接

问题描述

我有一个Unit表,它与Activities具有 ManyToMany 关系。

在我的单元表中呈现活动时,我希望每个活动都成为其自己的详细视图的链接。

我已经尝试了很多这样做的方法,但一直无法找出最好的方法。

我可以使用 lambda 获取 URL:

activities = tables.ManyToManyColumn(verbose_name='Activities', transform=lambda obj: obj.get_absolute_url,)

但我找不到实际呈现该链接的好解决方案。

似乎我应该能够通过访问render_activities()方法中的每个项目来自定义链接的呈现。但是render_FOO()使用时方法中的值ManyToManyColumns似乎不起作用。

标签: django-tables2

解决方案


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%}
                                        '''
                                       )

推荐阅读