Основное представление - это простой ListView с разбивкой на страницы, и я хочу добавить к нему форму поиска.
Я подумал что-то вроде этого поможет:
class MyListView(ListView, FormView):
form_class = MySearchForm
success_url = 'my-sucess-url'
model = MyModel
# ...
Но, видимо, я ошибся ... и я не могу найти, как это сделать в официальной документации.
Предложения?
В Django 2.2 можно сделать это (он хорошо работает, по крайней мере, с get
- запрос):
from django.views.generic import ListView
from django.views.generic.edit import FormMixin
from .models import Property
from .forms import SearchForm
class ListPageView(FormMixin, ListView):
template_name = 'property_list.html'
model = Property
form_class = SearchForm
queryset = Property.objects.all()
Использование FormMixin
перед ListView
. Если Вы хотите использовать SearchForm
в TemplateView
, можно сделать это:
from django.views.generic.base import TemplateView
from django.views.generic.edit import FormMixin
from .models import Property
from .forms import SearchForm
class HomePageView(FormMixin, TemplateView):
template_name = 'home.html'
form_class = SearchForm