python helper函数_如何将模型对象传递给Djang中的helper函数

如果你问的一般,我已经添加了一个工作项目的一部分到底部。但是,在您的例子中,我相信您可以定义一个实例方法来处理选定的对象—当然,如果这些操作与模型直接相关的话。在class User(models.Model):

first_name = models.CharField(max_length=40)

last_name = models.CharField(max_length=40)

title = models.CharField(max_length = 50)

...

def make_comrade(self):

return "Comrade " + self.last_name

然后

^{pr2}$

我上面说的代码。

在我的视图.pyfrom reports_helper import report_generator

...

def export_terminals_daily_turnover(request):

return report_generator('TerminalTurnover', 'daily_turnover', 'terminal_id', 'address_on_bill', 'summ')

这是我的报告_助手.pyimport csv

import django

from django.http import HttpResponse

def get_model_name(model_name):

entity = django.apps.apps.get_model('reports', model_name)

return entity

def report_generator(model_name, report_name, *args):

response = HttpResponse(content_type='text/csv')

response['Content-Disposition'] = 'attachment; filename="{}.csv"'.format(report_name)

headers = list(args)

klass = get_model_name(model_name)

writer = csv.writer(response)

writer.writerow(headers)

rows = klass.objects.all().values_list(*args)

for row in rows:

writer.writerow(row)

return response

顺便说一句,我所指的模型是一个db视图,而不是一个表class TerminalTurnover(models.Model):

terminal_id = models.IntegerField(primary_key=True)

summ = models.DecimalField(max_digits=15, decimal_places=2)

address_on_bill = models.CharField(max_length=100)

class Meta:

managed = False

db_table = 'reports_terminalturnover'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值