здесь я использую
age_from:------- age to:-------------- //here ---- is text field
date from:------ dat_to:-------------
search button // this is my search button.
здесь я сопоставляю условия, если при выборе возраста из него будет производиться поиск возраста, который больше на основе даты (даты от до даты_вто), аналогично для остальных случаев, какупомяните ниже код:
теперь моя проблема:
gender : o male o female
age_from:------- age to:--------------
date from:------ dat_to:-------------
теперь, как я могу написать условие для половой части, возрастной части и части даты ... немного сбивает с толку, что я получаю точно... помогите мне ..
def search(request):
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 age_from:
age1 = 1
if age_to:
age2 = 1
if date_from:
date1 = 1
if date_to:
date2 = 1
if age1 and not age2:
if date1 and date2:
patient = PatientInfo.objects.filter(age__gte=age_from , dateedit__range=(date_from,date_to))
else:
if date1:
patient = PatientInfo.objects.filter(age__gte=age_from,dateedit__gte=date_from)
else:
if date2:
patient = PatientInfo.objects.filter(age__gte=age_from, dateedit__lte=date_to)
else:
patient = PatientInfo.objects.filter(age__gte=age_from)
if age2 and not age1:
if date1 and date2:
patient = PatientInfo.objects.filter(age__lte=age_to, dateedit__range=(date_from,date_to))
else:
if date1:
patient = PatientInfo.objects.filter(age__lte=age_to, dateedit__gte=date_from)
else:
if date2:
patient = PatientInfo.objects.filter(age__lte=age_to, dateedit__lte=date_to)
else:
patient = PatientInfo.objects.filter(age__lte=age_to)
if age1 and age2:
if date1 and date2:
patient = PatientInfo.objects.filter(age__range=(age_from,age_to),dateedit__range=(date_from,date_to))
else:
if date1:
patient = PatientInfo.objects.filter(age__range=(age_from,age_to),dateedit__gte=date_from)
else:
if date2:
patient = PatientInfo.objects.filter(age__range=(age_from,age_to),dateedit__lte=date_to)
else:
patient = PatientInfo.objects.filter(age__range=(age_from,age_to))
if date1 and not date2:
if age1 and age2:
patient = PatientInfo.objects.filter(dateedit__gte=date_from, age1__range=(age_from,age_to))
else:
if age1:
patient = PatientInfo.objects.filter(dateedit__gte=date_from, age__gte=age_from)
else:
if age2:
patient = PatientInfo.objects.filter(dateedit__gte=date_from, age__lte=age_to)
else:
patient = PatientInfo.objects.filter(dateedit__gte=date_from)
if date2 and not date1:
if age1 and age2:
patient = PatientInfo.objects.filter(dateedit__lte=date_to, age1__range=(age_from,age_to))
else:
if age1:
patient = PatientInfo.objects.filter(dateedit__lte=date_to, age__gte=age_from)
else:
if age2:
patient = PatientInfo.objects.filter(dateedit__lte=date_to, age__lte=age_to)
else:
patient = PatientInfo.objects.filter(dateedit__lte=date_to)
if date1 and date2:
if age1 and age2:
patient = PatientInfo.objects.filter(dateedit__range=(date_from,date_to), age1__range=(age_from,age_to))
else:
if age1:
patient = PatientInfo.objects.filter(dateedit__range=(date_from,date_to),age__gte=age_from)
else:
if age2:
patient = PatientInfo.objects.filter(dateedit__range=(date_from,date_to), age__lte=age_to)
else:
patient = PatientInfo.objects.filter(dateedit__range=(date_from,date_to))
приведенный выше код для части возраста и даты ... работает отлично .... но когда приходит три условия, это сбивает с толку .. не получается
пожалуйста, напишите код для пола, возраста и даты .. как указано выше, спасибо заранее ...