Django模型组作为列表

时间:2015-02-06 19:59:52

标签: django django-models

我有一个模型,测试数据如下

id days

1,30 1,40 2,10 2,20 1,90

我希望输出为

1,[30,40,90]
2,[10,20]

我怎样才能在Django中获得这个?

1 个答案:

答案 0 :(得分:0)

Django并不多,它是纯粹的蟒蛇。要将结果作为' id'的映射。关键:

    result = {}
    for obj in Mymodel.objects.all():
        if result.has_key(obj.id):
            result[obj.id].append(obj.days)
        else:
            result[obj.id] = [obj.days]

    print result
    >>> {1: [30, 40, 90], 2: [10, 20]}

未定义每个列表中元素的顺序。如果您需要订购这些,最好在Queryset上附加.order_by('days')

最后一句话:您的身份'不是唯一的。我会考虑一个名为' id'的非pk列。一个不好的做法,因为' id'是Django自动创建的pk-field的默认名称。