Форум сайта python.su
Добрый день!
models.py
class Location(models.Model): user = models.ForeignKey(User) name = models.CharField(max_length=100, verbose_name=u"Локация", default=u'') keywords = models.CharField(max_length=100, verbose_name=u"Ключевые слова")
class AdvancedSearchForm(forms.Form): location = forms.CharField() keywords = forms.CharField() # e.g. 'spam,eggs,hum'
class AdvancedSearchView(FormView): form_class = AdvancedSearchForm template_name = "advanced_search.html" success_url = '/search_location/result/' # url of this view is 'search_result' class SearchResultView(ListView): model = Location context_object_name = 'locations_searched' paginated_by = 5 template_name = "search_result.html" def get_queryset(self): queryset = super(SearchResultView, self).get_queryset() location = self.request.GET.get('location') location = location.upper() keywords = self.request.GET.get('keywords') return queryset.filter(Q(name=location)|Q(keywords=keywords))
<form action="{% url 'search_result' %}" method="GET">{% csrf_token %} {{ form|crispy }} <button class="btn btn-default" type="submit">Find</button> </form>
{% for location in locations_searched %} {{ location }}<br> {{ location.user }}<br> {{ location.keywords }}<br> {% endfor %}
Офлайн
Ну дык разделить строку по запятым и искать в цикле. Если я правильно понял, что требуется.
Офлайн
В цикле можно только условия прописать, я точно не помню подходит ли Ку лукап здесь. Вам ведь нужно искать или, или. Потом одним запросом вытягивать кверисет.
Офлайн