Python 从Django中的模型进行搜索
我的view.py是这样的Python 从Django中的模型进行搜索,python,django,django-models,django-queryset,Python,Django,Django Models,Django Queryset,我的view.py是这样的 def searchnews(request): name = request.GET.get('name', 'default') categry = request.GET.get('category', 'default') NewTable.objects.filter(headline__contains=name).filter(category=categry) 我想要的是当querystring中任何元素的值为空时 像 如果c
def searchnews(request):
name = request.GET.get('name', 'default')
categry = request.GET.get('category', 'default')
NewTable.objects.filter(headline__contains=name).filter(category=categry)
我想要的是当querystring中任何元素的值为空时
像
如果category=”“我想得到所有的分类结果你可以利用Django中的一个功能 将默认值设置为空字符串,以防在
请求中找不到它。GET
。在添加额外的过滤器()
之前,请检查是否不为空:
您可以利用在Django中执行的功能 将默认值设置为空字符串,以防在
请求中找不到它。GET
。在添加额外的过滤器()
之前,请检查是否不为空:
仅当提供了一个类别时,您可以设置一个条件来应用
过滤器
:
categry = request.GET.get('category', '')
queryset = NewTable.objects.filter(headline__contains=name)
if categry:
queryset = queryset.filter(category=categry)
仅当提供了一个类别时,您可以设置一个条件来应用
过滤器
:
categry = request.GET.get('category', '')
queryset = NewTable.objects.filter(headline__contains=name)
if categry:
queryset = queryset.filter(category=categry)
另一个选项是将过滤器构建为kwargs字典
kwargs = {'headline__contains': name}
if 'category' in request.GET and request.GET['cateogry'] is not '':
kwargs['category': request.GET['category']
queryset = NewTable.objects.filter(**kwargs)
另一个选项是将过滤器构建为kwargs字典
kwargs = {'headline__contains': name}
if 'category' in request.GET and request.GET['cateogry'] is not '':
kwargs['category': request.GET['category']
queryset = NewTable.objects.filter(**kwargs)