Django tables2 为另一个模型添加自定义列

Django tables2 add custom column for another model

不知道这个问题有没有回答,相关问题我都找遍了,没找到答案。

我想做的是使用 django-tables2 创建一个 table 模型,假设是模型 A,我想向这个 table 具有模型 B 的价值,在任何情况下都与模型 A 无关。

这就是我所做的


class TableA(tables.Table):
  
    class Meta:
        model = A
        template_name = "django_tables2/bootstrap.html"
        fields = ("id","username","data_from_b")



我可以在哪里放置 B.objects.filter() 以将其数据附加到自定义列。

您的帮助将不胜感激。谢谢

您可以使用自定义呈现方法来检索您需要的任何内容。

https://django-tables2.readthedocs.io/en/latest/pages/custom-data.html#table-render-foo-methods

例如,B 名称列表可能如下所示:

from django.utils.safestring import mark_safe

class TableA(tables.Table):

    data_from_b = tables.Column()

    class Meta:
        model = A
        template_name = "django_tables2/bootstrap.html"
        fields = ("id","username","data_from_b")
    
    def render_data_from_b(self, value, record):
        return mark_safe("</br>".join(B.objects.filter().values_list("name", flat=True)))