[英]How to make 2 queryset lists but with different filter in the same view in Django
我一直在到处寻找这个问题的答案。 如何在同一视图中制作 2 个查询集列表但使用不同的过滤器? 我应该为每个列表或一个 function 制作一个 class 和单独的函数并进行两次查询集吗?
如果你想 append 两个相同的 model 查询集一起,以下应该工作:
queryset_one = mymodel.objects.filter(id__range=[0,99])
queryset_two = mymodel.objects.filter(name__in=[john,jane])
full_queryset = queryset_one | queryset_two
pipe 运算符用于 append 查询集。
如果您需要将两个不同的查询集传递到视图中:
def index(request):
queryset_one = mymodel.objects.filter(id__range=[0,99])
queryset_two = mymodel.objects.filter(name__in=[john,jane])
context{
"queryset_one":queryset_one,
"queryset_two":queryset_two
}
return render(request,'mypage.html',context)
如果您的两个过滤器为一个 model
from django.db.models import Q
Model.objects.filter(Q(x=10) | Q(active=False))
如果对于两个模型
Q1 = model.object.filter(x=10)
Q2 = model_2.object.filter(active=False)
Q2_Q1 = Q1.union(Q2)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.