Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从Django中的模型进行搜索_Python_Django_Django Models_Django Queryset - Fatal编程技术网

Python 从Django中的模型进行搜索

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

我的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中任何元素的值为空时 像
如果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)