Поиск в моделях Django по запросу формы поиска - PullRequest
0 голосов
/ 07 декабря 2018

Я читал формы Джанго, и мне непонятно, как поступить.Я создаю файл forms.py с целью, чтобы на уровне формы пользователь мог ввести строковый запрос, а затем этот запрос запускается для одной из моделей, в зависимости от того, какая из них выбрана в раскрывающемся спискеформа.Что-то вроде следующего в HTML:

<div class="row">
<form class="col s12">
  <div class="row">
    <div class="input-field col s6" >
      <input type="text" class="validate" list="option">
    </div>

  <option value="1">model 1</option>
  <option value="2">model 2</option>
  <option value="3">model 3</option>
</select>

Таким образом, по сути, запрос должен быть запущен для соответствующей модели в views.py.Каждая модель имеет свою функцию просмотра.Кроме того, как мне структурировать свой urlconf, чтобы учесть это?

1 Ответ

0 голосов
/ 07 декабря 2018

Я бы сделал это, выполнив что-то вроде этого в представлении:

class MySearchView(View):
    template_name = 'my_app/my_template.html'
    model_dict = {'1':MyFirstModelClass, '2': MySecondModelClass, '3': MyThirdModelClass}
    def get(self, request, *args, **kwags):
        my_search_form = MySearchFormClass(request.GET)
        if form.is_valid():
            model_class_to_search = model_dict[form.cleaned_data['name_of_model_form_field']]
            #run query here on model_class_to_search
            model_class_to_search.objects.filter(field1=form.cleaned_data['name_of_form_search_field'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...