我的查詢無法正常工作。當我選擇男性部分,然後age_from到age_to和date_from到date_to其實不從我的數據庫根據我的查詢實際選擇男性,根據我的數據庫男性記錄在5歲至15歲之間,日期2011-04-05 2011-05-05只有1個,但顯示3條記錄。django查詢不匹配
這是我的查詢:如下 病人= PatientInfo.objects.filter(dateedit__range =(date_from,DATE_TO),age__range =(AGE_FROM,AGE_TO),gender__iexact = '男')
我覺得這是一些錯誤的,我查詢..即時通訊NT,恰好...
標誌= 0 如果request.POST.has_key( '性別'): search_gender = request.POST [ 「性別」]
if search_gender == 'male':
flag == 1
if search_gender == 'female':
flag == 2
if search_gender == 'both':
flag == 3
age_from = request.POST["age_from"]
age_to = request.POST["age_to"]
date_from = request.POST["date_from"]
date_to = request.POST["date_to"]
患者=患者信息()
if date1 and date2:
if age1 and age2:
if flag == 1:
patient = PatientInfo.objects.filter(dateedit__range=(date_from,date_to),age__range=(age_from,age_to),gender__iexact='male')
else:
patient = PatientInfo.objects.filter(dateedit__range=(date_from,date_to),age__range=(age_from,age_to))
if flag == 2:
patient = PatientInfo.objects.filter(dateedit__range=(date_from,date_to),age__range=(age_from,age_to),gender__iexact='female')
else:
patient = PatientInfo.objects.filter(dateedit__range=(date_from,date_to),age__range=(age_from,age_to))
if flag == 3:
patient = PatientInfo.objects.filter(dateedit__range=(date_from,date_to),age__range=(age_from,age_to),gender__iexact='male')
三個指針 - 1您可以逐位建立查詢,添加額外的過濾器 - 2 - 爲您的性別使用帶有「choices」參數的char或integer字段。 - 3 - 使用'elif'整理東西 – Joe 2011-05-05 12:28:32
將上面的註釋轉化爲答案 – Joe 2011-05-05 12:34:26
[django filter check conditions]的可能重複(http://stackoverflow.com/questions/5787265/django-filter-check-conditions) – 2011-05-05 13:16:50