Представление ListView на основе класса Django с формой

Основное представление - это простой ListView с разбивкой на страницы, и я хочу добавить к нему форму поиска.

Я подумал что-то вроде этого поможет:

class MyListView(ListView, FormView):
    form_class = MySearchForm
    success_url = 'my-sucess-url'
    model = MyModel
    # ...

Но, видимо, я ошибся ... и я не могу найти, как это сделать в официальной документации.

Предложения?

27
задан h3. 20 June 2011 в 03:24
поделиться

1 ответ

В 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
0
ответ дан 28 November 2019 в 05:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: