2017-04-16 34 views
0
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'} 

客戶端模型的字段「天」是一個列表。我想創建一個自定義列,在天數傳遞到calculateTotalVists()後顯示結果。但是,我不是如何使用存取函數。Django表2創建自定義計算字段

回答

3

你不能使用隨機函數,並期望tables2神奇地將它從表格記錄中取出的適當參數傳遞給它。只是使它的方法對客戶端模型(或財產):

# 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') 
     # ... 
+0

什麼是A()是什麼意思? –

+1

@MarcCompte這是實用程序類['Accessor']的簡稱(http://django-tables2.readthedocs.io/en/latest/_modules/django_tables2/utils.html#Accessor)。我添加了導入行。 – schwobaseggl

相關問題