17π
β
I figured it out in the end, it was actually not too hard after all π
So using my example above, in order to add a custom column using a function in the associated model you just use accessors β¦
# models.py
class MyModel(models.Model):
my_field = models.TextField()
my_field_2 = models.IntegerField()
def my_function(self):
# Return some calculated value based on the entry
return my_value
# tables.py
class MyTable(tables.Table):
my_extra_column = tables.Column(accessor='my_function',
verbose_name='My calculated value')
class Meta:
fields = ['my_field', 'my_field_2', 'my_extra_column']
model = MyModel
The trouble comes if and when you want to be able to sort this data, because the function wonβt translate into any valid field in MyModel
. So you could either disable sorting on this column using ordering=False
or specify a set using order_by=('field', 'field2')
π€DrBuck
Source:stackexchange.com