Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 27, 2010 23:52:45

Leon
От:
Зарегистрирован: 2010-10-20
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Как привязать контролы (фильтры)

Всем привет.
Хочу сделать нечто как на ауто.ру
Т.е. есть комбо бокс - юзер выбирает что то из перечисленного в нём. Сообразно его выбору открывается новая форма с другим комбо-боксом, потом юзер пишет интересующую его фразу и ведется список уже суженный по выбранным им фильтрам.
Т.е. к примеру, юзер из всего множества машин выбрал легковой->седан->“бмв” и ведется поиск по всем этим параметрам. Как это сделать?

Привожу шаблонный файл с комбо-боксами и формочкой поиска. Как их связать, чтоб джанго понимала, где и что искать?

#search.html

{% extends "base.html" %}
{% block title %}Searching form{% endblock %}
{% block content %}
<head>
<title>Search{% if query %} Results{% endif %}</title>
</head>
<body>
<h1>Search {{ object }}</h1>
<form action="." method="GET">{% csrf_token %}

//комбо-бокс 1

<td align="right">Content type
<select name="type_content" class="form" style="width: 50px">
<option value=1 selected>____</option>
<OPTION value=sound>легковой</OPTION>
<OPTION value=video>грузовой</OPTION>
</select>

//комбо-бокс 2

<td align="right">Content type
<select name="type_content" class="form" style="width: 50px">
<option value=1 selected>____</option>
<OPTION value=sound>седан</OPTION>
<OPTION value=video>купе</OPTION>
</select>

//форма поиска

<label for="q">Search: </label>
<input type="text" name="q" value="{{ query|escape }}">
<input type="submit" value="Search">
</form>

{% if query %}
<h2>Results for "{{ query|escape }}":</h2>
{% if results %}
<ul>
{% for file in results|slice:":10" %}
<li><a href="{{ file.get_absolute_url }}">{{ file|escape }}</a></l1>
{% endfor %}
</ul>
{% else %}
<p>No files found</p>
{% endif %}
{% endif %}
</body>
</html>
{% endblock %}
На всякий случай метод в views.py

#views.py
def searcher(request):
query = request.GET.get('q', '')
if query:
qset = (
Q(autoMark__icontains=query)
)
results = Auto.objects.filter(qset).distinct()
else:
results = []
return render_to_response("search.html", {
"results": results,
"query": query
})
Заранее, спасибо



Офлайн

#2 Окт. 28, 2010 10:43:26

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2267
Репутация: +  41  -
Профиль   Отправить e-mail  

Как привязать контролы (фильтры)

это делается через js, джанга тут может разве что подгружать по ajax пункты подменю

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version