Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

A short description for your project.

Project Description

Django’s class based generic views are a great way to reuse code and avoid boilerplate. In Django, however, each view is associated with a single URL. If you want to reuse some behavior that involves multiple urls it is often necessary to synchronize many different views. Think about a CRUD interface: it is not necessarily hard, but it can be both tedious and error prone.

View packs gather a collection of views and url entry points together in a single reusable unity. Hence, instead of creating separate CreateView, DetailView, UpdateView, DeleteView, etc, we can simply subclass the CRUDViewPack view pack:

from viewpack import CRUDViewPack
from fooapp.models import FooModel

class FooCRUD(CRUDViewPack):
    model = FooModel

In your, register all CRUD views as an include:

from django.conf import url
from views import FooCRUD

urlpatterns = [
    url(r'^foo/', FooCRUD.as_include(namespace='foo')),

Now you have registered a simple CRUD interface for your FooModel. The next step is to write the required templates and you’re done! (In fact, if you are lazy and use Jinja, we even offer a few ready to use templates!)

Release History

This version
History Node


History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(20.9 kB) Copy SHA256 Hash SHA256
Source None May 5, 2016

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers