我有一个带有搜索框的系统,可以搜索和显示订单。
我通过使系统按开始日期到结束日期进行搜索或通过使用select标签进行搜索来自定义搜索。
目前,我按开始-结束日期进行搜索,它是有效的,但如果我从select标记中进行搜索和选择,我会得到一个错误,即:
[u"'' value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format."]这是我的views.py
def search_form(request):
data = OrderItem.objects.order_by().values_list('certification_type', flat=True).distinct()
print data
if request.method == 'GET':
user_search = request.GET.get('searched_item')
print "What is searched for is : ", user_search
selected_tag = request.GET.get('certification_type')
print "The selected certificate type is :", selected_tag
start_date = request.GET.get('first_date')
print "The start date is : ", start_date
end_date = request.GET.get('second_date')
print "The end date is : ", end_date
if (user_search != None and selected_tag !=None) | (user_search != None and start_date != None and end_date != None):
items = OrderItem.objects.filter(Q(certification_type__iexact=selected_tag) | (Q(created_on__range=(start_date , end_date))) , (Q(order_type__iexact= user_search) | Q(item__iexact= user_search)
| Q(certification_no__iexact= user_search) | Q(client__user__email__iexact= user_search) | Q(client__phone_number__iexact= user_search) | Q(id__iexact= user_search)))
print "items ", items
return render(request, 'i/search_results.html', {'items':items, 'user_search_query':user_search, 'selected_tag_query': selected_tag, "data":data})
else:
return render(request, 'i/dashboard.html', {'error':True, "data":data})
else:
return render(request, 'i/dashboard.html', {'error':True, "data":data})
return render(request, 'i/search_results.html', {'items':items, 'user_search_query':user_search, 'selected_tag_query': selected_tag, "data":data})错误指向以下代码行:
if (user_search != None and selected_tag !=None) | (user_search != None and start_date != None and end_date != None):
items = OrderItem.objects.filter(Q(certification_type__iexact=selected_tag) | (Q(created_on__range=(start_date , end_date))) , (Q(order_type__iexact= user_search) | Q(item__iexact= user_search) | Q(certification_no__iexact= user_search) | Q(client__user__email__iexact= user_search) | Q(client__phone_number__iexact= user_search) | Q(id__iexact= user_search)))我很困惑,不知道我做错了什么
发布于 2016-02-10 19:31:08
您应该在if条件中使用or运算符,而不是|,它是一个按位运算符:
if (user_search != None and selected_tag !=None) or (user_search != None and start_date != None and end_date != None):https://stackoverflow.com/questions/35313672
复制相似问题