помогите пожалуйста сделать запрос
я написал фильтр для отбора людей из БД по имени и дате рождения.
<form class="left filter" action="{% url 'friends_search' %}" method="POST">
{% csrf_token %}
<div class="cell">
<label class="label lbl_name" for="fld_name">Имя</label>
<input class="fld_name" type="text" name="fld_name" id="fld_name" value="{% if post.fld_name %}{{ post.fld_name }}{% endif %}" />
</div>
<div class="cell">
<label class="label lbl_birth_date" for="fld_birth_date">Дата рождения</label>
<input class="fld_birth_date datepicker" type="text" name="fld_birth_date" id="fld_birth_date" value="{% if post.fld_birth_date %}{{ post.fld_birth_date }}{% endif %}" />
</div>
<div class="cell">
<input class="submit btn btn-default btn-block" type="submit" name="fld_submit" id="fld_submit" value="Найти" />
</div>
</form>
views.py:
@login_required
def friends_search(request):
search_result = None
post = None
if request.method == 'POST':
post = request.POST
if request.POST.get('fld_name'):
try:
fld_name = request.POST.get('fld_name')
fld_birth_date = request.POST.get('fld_birth_date')
if q_name:
q_name = Q(nickname__icontains=fld_name.strip()))
if q_birth_date:
q_birth_date = Q(birth_date__icontains=fld_birth_date.strip())
search_result = UserProfile.objects.filter(q_name).filter(q_birth_date) #???????????????????????????
if not search_result:
search_result = 'null'
except Exception as exc:
search_result = 'error'
t = loader.get_template('friends_search.html')
c = RequestContext(request, {
'city_list': UserProfile.get_city_list(),
'post': post,
}])
return HttpResponse(t.render(c))
проблема в том, что из формы в контроллер могут поступить fld_name и fld_birth_date одновременно. но может поступить только fld_name или только fld_birth_date . поэтому запрос
search_result = UserProfile.objects.filter(q_name).filter(q_birth_date)
может выдавать ошибку
помогите пожалуйста советом