我的查询无法正常工作。当我选择男性部分,然后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