Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是Django查询集';s`order_by`method加法?_Django_Django Queryset - Fatal编程技术网

是Django查询集';s`order_by`method加法?

是Django查询集';s`order_by`method加法?,django,django-queryset,Django,Django Queryset,给定以下模型和查询,如果我多次调用order\u by(),将产生什么查询 class MyModel(models.Model): field_a = models.IntegerField() field_b = models.IntegerField() qs = MyModel.objects.all().order_by('field_a') qs = qs.order_by('field_b') qs将生成什么SQL ORDER BY field_a, field

给定以下模型和查询,如果我多次调用
order\u by()
,将产生什么查询

class MyModel(models.Model):
    field_a = models.IntegerField()
    field_b = models.IntegerField()

qs = MyModel.objects.all().order_by('field_a')
qs = qs.order_by('field_b')
qs
将生成什么SQL

ORDER BY field_a, field_b

?


也就是说,对
order\u by()
的后续调用是否覆盖以前的调用,或将其添加?

答案是,对
order\u by()的后续调用覆盖以前的调用:

In [7]: print MyModel.objects.all().order_by('field_a').order_by('field_b').query
SELECT "mymodel"."id", "mymodel"."field_a", "mymodel"."field_b" 
FROM "mymodel" 
ORDER BY "mymodel"."field_b" ASC

答案是,
order\u by
的后续调用会覆盖先前的调用:

In [7]: print MyModel.objects.all().order_by('field_a').order_by('field_b').query
SELECT "mymodel"."id", "mymodel"."field_a", "mymodel"."field_b" 
FROM "mymodel" 
ORDER BY "mymodel"."field_b" ASC

你可以自己检查:
print qs.query
我想你可以使用
qs.order\u by('field\u a,field\u b')
我想我是在问后续的
order\u by
调用是否是累加的。我已经改写了标题来表示这一点。@karthikr我不知道
query
属性。谢谢。您可以自己检查:
print qs.query
我想您可以使用
qs.order\u by('field\u a,field\u b')
我想我是问后续的
order\u by
调用是否是累加的。我已经改写了标题来表示这一点。@karthikr我不知道
query
属性。谢谢