我希望将这两个查询合并为1,以获取名称为Music
的{{1}}对象,并从艺术家排序的xyz
类别中获取前3个对象:
10
我可以使用1. Music.objects.filter(name='xyz', genre=10)
2. Music.objects.filter(genre=10).order_by('artist')[:3]
这样的对象,但我不知道如何订购&过滤下面的第3个Q
对象:
Q
答案 0 :(得分:0)
也许尝试这样?
Music.objects.filter( (Q(name='xyz') & Q(genre=10)) | Q(genre=10) ).order_by('artist')[:3]
答案 1 :(得分:0)
无法做到这一点,使用两个查询但更改第二个以避免重复:
exact = Music.objects.filter(name='xyz', genre=10)
additional = Music.objects.filter(genre=10).exclude(name='xyz').order_by('artist')[:3]
do_something_with = list(exact) + list(additional)