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