如何对模型属性进行分组

How can I group model atributes

我有一个 class,我想在不定期访问数据库的情况下显示每个 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})