我有一个模型,我想获取方法变量“行计数和列” 计数,以将值放入模板中。
class Data(models.Model):
""" Model of Data"""
user = models.ForeignKey(User, on_delete=models.CASCADE)
document = models.FileField(upload_to='documents/%Y/%m/%d')
uploaded_at = models.DateTimeField(auto_now_add=True)
amount = models.DecimalField(default=0, max_digits=6, decimal_places=2,
blank=True, null=True)
def calculate_amount(self):
# wb = xlrd.open_workbook('media/' + self.document.name)
wb = xlrd.open_workbook(os.path.join(settings.MEDIA_ROOT,
self.document.name))
worksheet = wb.sheet_by_index(0)
# Show this value into templates
row_count = worksheet.nrows
column_count = worksheet.ncols
答案 0 :(得分:1)
您可以使用类似以下代码段的内容,您的模型现在将具有两个新属性row_count
和columns_count
,可以在模板中调用它们,每个属性都将调用{{1} }以获取其值。
如果我在calculate_amount
上添加了if,则可以防止对其进行多次调用,以避免多次读取文件,并可能减慢您的应用程序的速度。
calculate_amount
已用property setters更新。