Extra class-based views for Django
Django’s class-based generic views are great, they let you accomplish a large number of web application design patterns in relatively few lines of code. They do have their limits though, and that’s what this library of views aims to overcome.
Installing from github.
pip install -e git://github.com/tomchristie/django-extra-views.git#egg=django-extra-views
Adding support for pagination in ModelFormSetView and its derivatives should now be simpler.
Defining a FormSetView.
from extra_views import FormSetView class AddressFormSet(FormSetView): form_class = AddressForm template_name = 'address_formset.html'
Defining a ModelFormSetView.
from extra_views import ModelFormSetView class ItemFormSetView(ModelFormSetView): model = Item template_name = 'item_formset.html'
Defining a CreateWithInlinesView and an UpdateWithInlinesView.
from extra_views import CreateWithInlinesView, UpdateWithInlinesView, InlineFormSet from extra_views.generic import GenericInlineFormSet class ItemInline(InlineFormSet): model = Item class TagInline(GenericInlineFormSet): model = Tag class CreateOrderView(CreateWithInlinesView): model = Order inlines = [ItemInline, TagInline] class UpdateOrderView(UpdateWithInlinesView): model = Order inlines = [ItemInline, TagInline] # Example URLs. urlpatterns = patterns('', url(r'^orders/new/$', CreateOrderView.as_view()), url(r'^orders/(?P<pk>\d+)/$', UpdateOrderView.as_view()), )