I have following course model with professor, code, semester_season, semester_year, etc
I have request post values:
coursecode = request.POST['coursecode']
courselist = request.POST['courselist']
semesteryear = request.POST['semesteryear']
semesterseason = request.POST['semesterseason']
this is my filter a queryset for finding above post values:
course_listobj = Course.objects.filter(
code=coursecode,
title=courselist,
semester_year=semesteryear,
semester_season=semesterseasonid).order_by(
'code', 'title', 'semester_year', 'semester_season')
how can find if one post value is empty find other values in query set dynamically i mean
if no post value means coursecode = None
here i am finding like below:
if (coursecode != 'None') and (courselist == 'None' and semesteryear == 'None' and semesterseason == 'None'):
course_listobj = Course.objects.filter(code=coursecode).order_by('code')
like above multiple if conditions are required. pls suggest me any one how can i do one query with multiple conditions.
Edit (Working code for combination of if conditions):
coursecode = request.POST['coursecode']
courselist = request.POST['courselist']
semesteryear = request.POST['semesteryear']
semesterseason = request.POST['semesterseason']
courses = Course.objects.all().order_by(
'code', 'title', 'semester_year', 'semester_season')
coursecodequery = Q(code=coursecode) if coursecode != 'None' else Q()
courselistquery = Q(title=courselist) if courselist != 'None' else Q()
semesteryearquery = Q(semester_year=semesteryear) if semesteryear != 'None' else Q()
semesterseasonquery = Q(semester_season=semesterseason) if semesterseason != 'None' else Q()
course_listobj = courses.filter(
coursecodequery & courselistquery & semesteryearquery & semesterseasonquery
)
if coursecode == 'None' and courselist == 'None' and semesteryear == 'None' and semesterseason == 'None':
messages.info(request, 'Please select all fields')
if not course_listobj:
messages.info(request, 'No matching courses')
