【问题标题】:Django-tables2 - how can I get counts out in my table on a custom table field?Django-tables2 - 如何在自定义表格字段的表格中计算出计数?
【发布时间】:2021-03-15 13:58:15
【问题描述】:

我正在尝试从 django-tables2 的表中的列中的查询集中获取一些频率数据。

我正在通过自定义字段尝试此操作:

 class MyTable(tables.Table):

      custom_field = tables.Column(empty_values=())


      def render_custom_field(self):

           total_queryset = self.data.data

           # trying to get out the row object, to do a filter query something like:

           row_object = self.rows.instance
           
           freq = total_queryset.filter(myfield=row_object.myfield)

           return f"{len(freq)}/{len(total_queryset)}"

但是,我无法获取行实例来执行此查询。有谁知道我怎样才能得到行实例来做到这一点? (我也知道从 self.data.data 获取 total_queryset 可能是这样做的一种 hacky 方式......)

谢谢!

【问题讨论】:

    标签: django django-tables2


    【解决方案1】:

    record 可用作直接参数,如果您的数据是 QuerySet,您也可以使用 .count() 方法。

    def render_custom_field(self, record):
        return self.data.data.filter(myfield=record.myfield).count()
    

    【讨论】:

      【解决方案2】:

      想通了 - 你从 kwargs 获得行实例:

      def render_custom_field(self, *args, **kwargs):
      
          total_queryset = self.data.data
      
          obj = kwargs['record']
      
          freq = total_queryset.filter(myfield=row_object.myfield)
      
          return len(freq)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-05-14
        • 1970-01-01
        • 1970-01-01
        • 2021-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多