我在我的视图中使用了分页,并且可以使用subject_name关键字搜索数据,但现在我想根据其主题持续时间以下拉格式搜索它们。
view.py
@login_required
def servicesview(request):
services = ServicesData.objects.all()
key = request.GET.get("search_key", "")
if key:
services =
ServicesData.objects.filter(subject_name__icontains=key)
page = request.GET.get('page', 1)
paginator = Paginator(services, 2)
try:
services = paginator.page(page)
except PageNotAnInteger:
services = paginator.page(1)
except EmptyPage:
services = paginator.page(paginator.num_pages)
return render(request, 'services.html', {'services': services, 'key': key})
services.html
<form>
<input type="text" name="search_key" value="{{key}}" placeholder="Search..">
<input type="submit" value="Submit">
</form>
我的页面如下所示:Reality
但是我想要以下类似的subject_duration:
请有人帮助
尝试一下。
q_objects将收集所有过滤器数据并传递给queryset。
from django.db.models import Q
def servicesview(request):
key = request.GET.get("search_key", "")
title = request.GET.get("title", "")
priority = request.GET.get("priority", "")
q_objects = Q()
if key:
q_objects.add(Q(subject_name__icontains=key), Q.AND)
if title:
q_objects.add(Q(title__icontains=title), Q.AND)
if status:
q_objects.add(Q(status=status), Q.AND)
if priority:
q_objects.add(Q(priority=priority), Q.AND)
if q_objects:
services = ServicesData.objects.filter(q_objects)
else:
services = ServicesData.objects.all()
page = request.GET.get('page', 1)
paginator = Paginator(services, 2)
try:
services = paginator.page(page)
except PageNotAnInteger:
services = paginator.page(1)
except EmptyPage:
services = paginator.page(paginator.num_pages)
return render(request, 'services.html',
{'services': services, 'key': key})