用于模型方法结果的django字典
对于这些型号:用于模型方法结果的django字典,django,python-2.7,Django,Python 2.7,对于这些型号: class Publisher(models.Model): name = models.CharField(max_length=30) code = models.SmallIntegerField(unique=True) class Book(models.Model): date = models.DateField(auto_now_add=True) publisher = models.ForeignKey(Publi
class Publisher(models.Model):
name = models.CharField(max_length=30)
code = models.SmallIntegerField(unique=True)
class Book(models.Model):
date = models.DateField(auto_now_add=True)
publisher = models.ForeignKey(Publisher)
hardback = models.BooleanField()
large_print = models.BooleanField()
foreign_lang = models.BooleanField()
对于每个布尔字段,我希望出版商按照该字段的百分比和总图书数量进行排序
大号印刷品
出版商-大号印刷品占图书总数的百分比
我有模型方法Publisher.get_percentage和Publisher.total_count,它们在提供日期范围(d1、d2)和相关布尔字段(choice)时计算这些值
d1和d2将由用户从表单中选择
我正在处理这样一个视图:
def data(request):
if request.method == 'POST':
form = DateForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
choices = ['publisher__hardback','publisher__large_print','publisher__foreign_lang']
for choice in choices:
ch = {}
pub = Publisher.objects.all()
for p in pub:
ch = {p.code : p.total_count : p.get_percentage(cd.d1, cd.d2, choice)}
为每个选项创建新词典并将值附加到词典中的最佳方法是什么
我想我需要在视图中创建这些词典(而不是在模板中遍历发布者),因为我想按百分比排序结果
有没有更好的方法来实现这一切
谢谢你写的代码太多了。找到一个满足您需要的查询(提示:聚合)。您的意思是这样的?