class abc(xyz):
user = models.ForeignKey(User, max_length=100)
基于外键字段对数据进行排序的django查询是什么?
我尝试了查询:
abc.objects.filter(User__user=user).
abc.objects.filter(Q(user__icontains=search_query) ).
我已完成了这2个查询,但不知道如何组合&让它发挥作用
我不知道该怎么办。有人可以伸出援助之手吗?
答案 0 :(得分:1)
第一个查询不适用于您的模型。将其更改为
qs = abc.objects.filter(user=user)
现在,按user
(或user_id
或任何其他user
的属性对此查询集进行排序
qs = qs.order_by('user_id')
没有多大意义,因为查询集中的所有元素都具有相同的用户。
第二个查询不起作用,因为icontains
是一个适用于字符串的查询,而user
是一个模型实例。以下可能有效:
abc.objects.filter(user__username__icontains=search_query) # .order_by('user__username')
通常,您可以按具有(自然)顺序的属性进行排序,例如整数,浮点数,字符串,日期等。因此,您可以按顺序排序。例如user_id
,user__username
,user__email
,user__date_joined
:
abc.objects.all().order_by('user_id') # for instance
答案 1 :(得分:0)
我相信你想按用户的用户名排序。您可以通过以下方式完成:
main.cpp: In function 'int main()':
main.cpp:47:16: error: 'class CrtpGenr' has no member named 'funct1'
crtp_obj1->funct1();
^
main.cpp:48:16: error: 'class CrtpGenr' has no member named 'funct2'
crtp_obj1->funct2();
查看docs了解详情。
请注意双下划线' __'这里。在引用foreignkey的字段时,需要通过双下划线将foreignkey的字段与foreignkey分开。