Включение шаблона не возвращает поле формы

#django #forms

#django #формы

Вопрос:

Вот моя форма

 Class SearchForm(forms.Form):
    pub_from = forms.CharField(max_length=20)
    pub_to = forms.CharField(max_length=20)
  

и мой SearchView

 def SearchView(request):


    if request.method == 'POST':
        form = SearchForm(request.POST)

        if form.is_valid():
            pub_date_from = form.cleaned_data['pub_date_from']
            pub_date_to = form.cleaned_data['pub_date_to']

            #form.save()
            return HttpResponseRedirect("/admin/")

        else:
            return render_to_response("search_form.html", {"form":form}, context_instance=RequestContext(request))
    else:

        form = SearchForm()
        context = {"form":form}
        return render_to_response("search_form.html", context, context_instance=RequestContext(request))
  

и мой search_form.html есть

 <form action="" method="get">{% csrf_token %}
{{ form }}
<input type="submit" value="submit">
  

Когда я визуализирую форму отдельно, она показывает поле формы, и теперь, когда я наследую ее другому шаблону, при category.html выполнении {% include "search_form.html" %} отображается только кнопка отправки, а не поле формы.

Я не знаю, что я делаю не так.

Комментарии:

1. Вы также должны передать form контекст запроса для этого представления

2. Можете ли вы опубликовать код представления для category.html ?

3. Если вы включаете шаблон в представление, которое не включает форму, это может не сработать. Представления отображают шаблоны, шаблоны не вызывают представления.

4. Как я должен тогда получить форму

5. Отправьте его из любого представления, отображающего страницу, на которую вы включаете шаблон.

Ответ №1:

  1. Что это???? <form action="" method="get">

метод формы — это POST!

  1. Это использовалось нашими предками, бросающими камни:

<input type="submit" value="submit">

Теперь мы используем button вместо input