Django:吸引用户'带字段的ID

时间:2014-10-24 09:19:12

标签: python django models

我有一个模型,例如:

class Person(models.Model):
    name = 
    surname = 
    city = 
    cars = 

我需要获取具有特定名称的“汽车”数量最多的5个用户的ID列表(主键自动设置)。

我以为我可以做类似的事情:

    list = Person.objects.filter(name=name,)('-reputation')[5].id

3 个答案:

答案 0 :(得分:0)

您似乎错过了对order_by的调用。

Person.objects.filter(name=name).order_by('-reputation')[5].id

答案 1 :(得分:0)

要获取具有最高编号的5个用户的列表,您可以使用:

list = Person.objects.filter(name=name).order_by('-reputation')[:5]

获取每个可用于循环的ID:

for user in list:
    userID = user.id

答案 2 :(得分:0)

使用values_list queryset function可以将其简化为一个简单的行:

Person.objects.values_list('id', flat=True).filter(name=name).order_by('-reputation')[:5]

并且将避免需要循环。