0
我在我的視圖中有幾行代碼,它獲取查詢參數,然後根據該參數進行過濾。Django查詢參數沒有返回無
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條件返回一個空的queryset。 GET:<QueryDict: {u'search': [u'']}>
爲什麼python似乎認爲這個空字符串是「什麼東西?」
>>> x = ''
>>> if x:
... print "Exists"
... else:
... print "None"
...
None
>>> x = u''
>>> if x:
... print "exists"
... else:
... print "None"
...
None
你說得對。我不知道爲什麼我的本地環境和產品環境之間存在差異,但這肯定是導致條件評估爲True的原因。兩者都運行相同版本的python和Django - 非常奇怪。 –