Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.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查询参数不返回None_Python_Django_Django Queryset - Fatal编程技术网

Python Django查询参数不返回None

Python Django查询参数不返回None,python,django,django-queryset,Python,Django,Django Queryset,我的视图中有几行代码获取查询参数,然后根据该参数进行过滤 search = request.GET.get('search', None) if search: accounts = UserProfile.objects.filter(fullname__icontains=search).order_by('fullname') else: accounts = UserProfile.objects.all().order_by('fullname') 出于某种奇怪的原

我的视图中有几行代码获取查询参数,然后根据该参数进行过滤

search = request.GET.get('search', None)

if search:
    accounts = UserProfile.objects.filter(fullname__icontains=search).order_by('fullname')
else:
    accounts = UserProfile.objects.all().order_by('fullname')
出于某种奇怪的原因,在我的本地计算机上,当我给出一个类似
localhost/accounts/admin/
localhost/accounts/admin/?search=
的url时,似乎效果很好——但在我的生产服务器上,它似乎认为搜索是一个空字符串,然后它传递if/then条件,该条件返回一个空查询集<代码>获取:

为什么python似乎认为这个空字符串是“某物”


实际上,如果您密切注意,搜索变量将设置为一个包含空unicode字符串的列表
[u']
,因此其计算结果为True的原因如下:

>>> search = [u'']
>>> bool(search)
True

至于为什么您在测试和生产之间看到不同的行为,很遗憾,我不知道为什么!?也许警察能帮上忙。

你说得对。我不知道为什么我的本地环境和prod环境之间存在差异,但这肯定是导致条件求值为真的原因。它们都运行相同版本的python和Django——非常奇怪。
>>> search = [u'']
>>> bool(search)
True