def calculateTotalVists(days): total = 0 for i in days: total += i return total class ClientTable(tables.Table): class Meta: model = Client fields = ('id', 'name', 'phone') attrs = {'class': 'table table-striped table-bordered', 'id': 'clients'}El modelo de cliente tiene el campo "días" que es una lista. Me gustaría crear una columna personalizada que muestre el resultado después de que se pasen días a computeTotalVists(). Sin embargo, no sé cómo puedo usar accesores con funciones.
No puede usar una función aleatoria y esperar que tables2 le pase mágicamente los argumentos apropiados tomados del registro de la tabla. Simplemente conviértalo en un método (o propiedad) en el modelo del cliente:
# models.py class Client(models.Model): # ... def total_visits(self): return sum(self.days) # or whatever self.days-based calculation # tables.py from django_tables2.utils import A class ClientTable(tables.Table): total_visits = Column( accessor=A('total_visits'), # ... ) class Meta: model = Client fields = ('id', 'name', 'phone') sequence = ('id', 'name', 'phone', 'total_visits') # ...