python - 如何对模型属性进行分组

标签 python django models

我有一个类,我想显示每个Car的所有模型,而无需定期访问数据库。所以我创建了一个 dict,但我认为这不是最好的解决方案。如何更专业地解决这个问题?

class Car(models.Model):

    name = models.CharField(max_length=100)
    model = models.CharField(max_length=100)

    def __str__(self):
        return self.name + '/' + self.model


def catatlog(request):

    cars = {}
    all_cars = Car.objects.all().order_by('name')
    for i in all_cars:
        if i.name not in cars.keys():
            cars[i.name] = [i.model]
        else:
            cars[i.name].append(i.model)
    return render(request, 'index.html', {'cars':cars})

最佳答案

您可以使用 defaultdict相反:

from collections import defaultdict

def catatlog(request):
    cars = defaultdict(list)
    for i in Car.objects.all():
        cars[i.name].append(i.model)
    return render(request, 'index.html', {'cars':cars})

关于python - 如何对模型属性进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35558811/

相关文章:

python - 在pandas dataframe中堆叠列以实现记录格式

mysql - Django 一对多查询

node.js - 风 sails JS : Best way to seed initial users

python - basemap 错误: module object is not callable

python - 扁平化 pandas 数据框的最有效方法是什么?

python - 在 Django 中存储电话号码时,我应该将它们存储为原始数字还是使用 django.contrib.localflavor?

Django send_mail 导致错误 60,Mac OSX 上的操作超时

python - 如何在 Django 中获取用户 IP 地址?

ruby-on-rails - 在模型中使用 Rails 助手

python - 在哪里定义 Google glass glasswares 的数据库模型