【问题标题】:Django tables2 add custom column for another modelDjango tables2为另一个模型添加自定义列
【发布时间】:2021-05-11 10:26:35
【问题描述】:

我不知道这个问题是否已经涵盖了,我搜索了所有相关的问题,但我找不到解决方案。

我想要做的是使用带有模型的 django-tables2 创建一个表,比如说模型 A,我想在这个表中添加一个自定义列,该列具有模型 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() 以将其数据附加到自定义列。

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

【问题讨论】:

标签: python django django-tables2


【解决方案1】:

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

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)))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 2011-11-14
    • 1970-01-01
    • 2020-01-10
    相关资源
    最近更新 更多