Extra class-based views for Django
Project description
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.
Installation
Installing from github.
pip install -e git://github.com/tomchristie/django-extra-views.git#egg=django-extra-views
Features so far
FormSet and ModelFormSet views - The formset equivalents of FormView and ModelFormView.
InlineFormSetView - Lets you edit formsets related to a model (uses inlineformset_factory)
GenericInlineFormSetView, the equivalent of InlineFormSetView but for GenericForeignKeys
CreateWithInlinesView and UpdateWithInlinesView - Lets you edit a model and its relations
Support for generic inlines in CreateWithInlinesView and UpdateWithInlinesView
Notes
NamedFormsetMixin removed - context behavior baked directly into views, with inline_context_names and formset_context_name.
Removed MultiFormView, SearchableMixin, SortableListMixin, CalendarMonthView.
The InlineFormSet and GenericFormSet classes are now just regular classes, not views.
Still to do
Adding support for pagination in ModelFormSetView and its derivatives should now be simpler.
Examples
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()), )
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-ptree-extra-views-0.6.3.zip
.
File metadata
- Download URL: django-ptree-extra-views-0.6.3.zip
- Upload date:
- Size: 22.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b470ae6dce437078e016b916f191b5ef4067180850e6ebfac2019038d235e3cb |
|
MD5 | ad3b8aba3730a8682d02d65a7f296248 |
|
BLAKE2b-256 | 038f20fd259182ff342590536f0a4248897ed2ab72f291ea4224439be1f87b46 |