django词典用于模型方法结果

时间:2013-11-30 10:21:15

标签: 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(Publisher)
    hardback = models.BooleanField()
    large_print = models.BooleanField()
    foreign_lang = models.BooleanField()

对于每个布尔字段,我想让发布者按该字段的百分比和总图书数进行排序。

例如

大字版

出版商 - 百分比大字体 - 书籍总数

我有模型方法Publisher.get_percentage和Publisher.total_count,它们在提供日期范围(d1,d2)和相关的布尔字段(选择)时计算这些。

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)}

为每个选项创建新词典的最佳方法是什么,并将值附加到词典中?

我认为我需要在视图中创建这些词典(而不是仅仅在模板中迭代发布者),因为我想按百分比排序结果......

有没有更好的方法来实现这一切?!

由于

0 个答案:

没有答案