Как уточнить исходный запрос в Django? - PullRequest
0 голосов
/ 13 января 2010

После ответа на на этот вопрос (Еще раз спасибо, Элли П!) Я создал страницу поиска и страницу результатов.

Например, если вы ищете для адвоката "deletelle", на странице результатов отображается ее фирма, школа и год обучения. Но вместо того, чтобы показывать ее информацию, я хочу показать других юристов, которые закончили ту же школу в том же году.

Это вид:

def search(request):
    if 'q' in request.GET and request.GET['q']:
        q = request.GET['q']
        lawyers = Lawyer.objects.filter(last__icontains=q)
        return render_to_response('search_results.html', {'lawyers': lawyers, 'query': q})
    else:
        return HttpResponse('Please submit a search term.')

Может ли кто-нибудь помочь мне понять, как я могу сохранить school и year_graduated из исходного запроса и выполнить поиск и отображение результатов school и year_graduated?

Спасибо!

Редактировать

Модель здесь

Edit2

Я попробовал несколько вещей из QuerySet API

Учитывая, что поисковый запрос "akira":

>>> akira_year = Lawyer.objects.filter(first__icontains="Akira").values_list('year_graduated').order_by('year_graduated')

>>> print akira_year
[(u'2000',)]

Но

>>> Lawyer.objects.filter(year_graduated__icontains=akira_year[0])
[]

не работает.

Может ли кто-нибудь помочь с правильным синтаксисом для использования в этом случае?

Спасибо

1 Ответ

0 голосов
/ 13 января 2010

Эта функция просмотра отвечает на вопрос:

def search(request):
    if 'q' in request.GET and request.GET['q']:
        q = request.GET['q']
        q_school = Lawyer.objects.filter(last__icontains=q).values_list('school', flat=True)
        q_year = Lawyer.objects.filter(last__icontains=q).values_list('year_graduated', flat=True)
        lawyers = Lawyer.objects.filter(school__icontains=q_school[0]).filter(year_graduated__icontains=q_year[0])        
        return render_to_response('search_results.html', {'lawyers': lawyers, 'query': q})
    else:
        return HttpResponse('Please submit a search term.')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...