我有一个模型,例如:
class Person(models.Model):
name =
surname =
city =
cars =
我需要获取具有特定名称的“汽车”数量最多的5个用户的ID列表(主键自动设置)。
我以为我可以做类似的事情:
list = Person.objects.filter(name=name,)('-reputation')[5].id
答案 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]
并且将避免需要循环。