Python 从其他列django-tables2计算列

Python 从其他列django-tables2计算列,python,django,django-tables2,Python,Django,Django Tables2,在使用django-tables2app时,如何获得一个额外的列,该列与数据库中的列不对应,而是以某种方式从中计算出来的。作为一个简单的例子,假设我有一个模型: #models.py class AddSub(models.Model) num1 = models.DecimalField(max_digits=6, decimal_places=2) num2 = models.DecimalField(max_digits=6, decimal_places=2)

在使用
django-tables2
app时,如何获得一个额外的列,该列与数据库中的列不对应,而是以某种方式从中计算出来的。作为一个简单的例子,假设我有一个模型:

#models.py
class AddSub(models.Model)

    num1 = models.DecimalField(max_digits=6, decimal_places=2)
    num2 = models.DecimalField(max_digits=6, decimal_places=2)
    op = models.CharField(max_length=3)
所以我的模型基本上是三列,前两列是数字,第三列是要执行的操作,“SUB”,“ADD”。例如:

num1 |num2| op
1.01  5.67  'ADD'
87.3  23.4  'SUB'
.
.
.
假设我想要第四列,从这三列中以明显的方式计算出来,也就是说,如果op是'ADD',它将两列相加,如果op是'SUB',它将相减

最后,我有我的桌子:

class CalcTable(tables.Table)
    num1 = tables.Column(verbose_name='Operand 1')
    num2 = tables.Column(verbose_name='Operand 2')
    operation = tables.Column(verbose_name='Operation')
    result = tables.Column(verbose_name='The Result')
我如何获得
django-tables2
来填充我的结果列?是否通过
渲染
?也许像

def render_result(self, value, record):
   #add up 

但我的尝试失败了。事实上,即使使用
return 3.0
返回一个常量,我的第四列也是空的。

如果添加一个新列,并使用
render
方法填充该列,则在定义列时需要添加
empty\u values
属性

 result = tables.Column(verbose_name='The Result', empty_values=())