Django-tables2 列总数
Django-tables2 column total
我正在尝试使用此 documentation 对列中的所有值求和,但未显示页脚。我是不是漏了什么?
models.py
class Mokejimai(models.Model):
id = models.AutoField(primary_key=True)
nr = models.IntegerField(verbose_name='Mok. Nr.')
data = models.DateField(verbose_name='Kada sumokėjo')
suma = models.FloatField(verbose_name='Sumokėta suma')
skola_pagal_agnum = models.FloatField(verbose_name='Skola pagal Agnum')
date_entered = models.DateTimeField(auto_now_add=True, auto_now=False, verbose_name='Apmokėjimas įvestas')
date_modified = models.DateTimeField(auto_now_add=False, auto_now=True, blank=True, null=True)
imone = models.ForeignKey(Imones, models.DO_NOTHING, verbose_name='Įmonė')
sask = models.ForeignKey(Saskaitos, blank=True, null=True, verbose_name='Sąskaita')
user = models.ForeignKey(User, models.DO_NOTHING, default=settings.AUTH_USER_MODEL)
tables.py
class MokejimaiTable(tables.Table):
suma = tables.Column(footer=lambda table: sum(x['suma'] for x in table.data))
class Meta:
model = Mokejimai
attrs = {"class": "paleblue"}
fields = ('id', 'imone', 'sask', 'nr', 'suma', 'skola_pagal_agnum', 'data', 'date_entered')
您的屏幕截图显示 django-tables2 正确地假定您的 table 上有一个页脚(耶!)但似乎没有从 lambda 返回任何内容。你可以尝试用这样的东西替换它,看看发生了什么:
def suma_footer(table):
try:
s = sum(x['suma'] for x in table.data)
print 'total:', s
except Exception e:
print str(e)
raise
return s
class MokejimaiTable(tables.Table):
suma = tables.Column(footer=suma_footer)
class Meta:
model = Mokejimai
attrs = {"class": "paleblue"}
fields = ('id', 'imone', 'sask', 'nr', 'suma', 'skola_pagal_agnum', 'data', 'date_entered')
如果在计算总和时出现问题,您应该会看到打印出异常,如果计算了一个值,您应该会看到打印出 'total: '。
我正在尝试使用此 documentation 对列中的所有值求和,但未显示页脚。我是不是漏了什么?
models.py
class Mokejimai(models.Model):
id = models.AutoField(primary_key=True)
nr = models.IntegerField(verbose_name='Mok. Nr.')
data = models.DateField(verbose_name='Kada sumokėjo')
suma = models.FloatField(verbose_name='Sumokėta suma')
skola_pagal_agnum = models.FloatField(verbose_name='Skola pagal Agnum')
date_entered = models.DateTimeField(auto_now_add=True, auto_now=False, verbose_name='Apmokėjimas įvestas')
date_modified = models.DateTimeField(auto_now_add=False, auto_now=True, blank=True, null=True)
imone = models.ForeignKey(Imones, models.DO_NOTHING, verbose_name='Įmonė')
sask = models.ForeignKey(Saskaitos, blank=True, null=True, verbose_name='Sąskaita')
user = models.ForeignKey(User, models.DO_NOTHING, default=settings.AUTH_USER_MODEL)
tables.py
class MokejimaiTable(tables.Table):
suma = tables.Column(footer=lambda table: sum(x['suma'] for x in table.data))
class Meta:
model = Mokejimai
attrs = {"class": "paleblue"}
fields = ('id', 'imone', 'sask', 'nr', 'suma', 'skola_pagal_agnum', 'data', 'date_entered')
您的屏幕截图显示 django-tables2 正确地假定您的 table 上有一个页脚(耶!)但似乎没有从 lambda 返回任何内容。你可以尝试用这样的东西替换它,看看发生了什么:
def suma_footer(table):
try:
s = sum(x['suma'] for x in table.data)
print 'total:', s
except Exception e:
print str(e)
raise
return s
class MokejimaiTable(tables.Table):
suma = tables.Column(footer=suma_footer)
class Meta:
model = Mokejimai
attrs = {"class": "paleblue"}
fields = ('id', 'imone', 'sask', 'nr', 'suma', 'skola_pagal_agnum', 'data', 'date_entered')
如果在计算总和时出现问题,您应该会看到打印出异常,如果计算了一个值,您应该会看到打印出 'total: '。