Skip to main content

Django CRUD Views

Tests Lint Coverage PyPI License Docs

The example app's author list: sortable filtered table, permission-aware buttons and breadcrumbs

Stop hand-writing the same list, detail, create, update and delete views for every model. Define your model, register a ViewSet, and Django CRUD Views generates the pages, wires up every URL, and cross-links the views — using your templates and your permissions, right inside your own app.

This is all you write

# app/views.py
import django_tables2 as tables

from crud_views.lib.viewset import ViewSet
from crud_views.lib.table import Table
from crud_views.lib.views import (
    ListViewTableMixin,
    ListViewPermissionRequired,
    CreateViewPermissionRequired,
    UpdateViewPermissionRequired,
    DeleteViewPermissionRequired,
)
from crud_views_object_detail.lib import ObjectDetailViewPermissionRequired
from .models import Author

cv_author = ViewSet(model=Author, name="author")


class AuthorTable(Table):
    first_name = tables.Column()
    last_name = tables.Column()


class AuthorList(ListViewTableMixin, ListViewPermissionRequired):
    cv_viewset = cv_author
    table_class = AuthorTable


class AuthorDetail(ObjectDetailViewPermissionRequired):
    cv_viewset = cv_author


class AuthorCreate(CreateViewPermissionRequired):
    cv_viewset = cv_author
    fields = ["first_name", "last_name"]


class AuthorUpdate(UpdateViewPermissionRequired):
    cv_viewset = cv_author
    fields = ["first_name", "last_name"]


class AuthorDelete(DeleteViewPermissionRequired):
    cv_viewset = cv_author

ObjectDetailViewPermissionRequired is provided by the crud_views_object_detail app; add it to INSTALLED_APPS alongside crud_views.

# app/urls.py
urlpatterns = cv_author.urlpatterns

You get list, detail, create, update and delete pages, every URL wired up, the views cross-linked, and access gated by Django's permission system.

Why developers use it

  • Skip the CRUD boilerplate — one ViewSet replaces a pile of near-identical class-based views and urls.py entries.
  • Views that know their siblings — automatic cross-linking that respects Django's permission system; no hand-written reverse() wiring.
  • Your app, your control — your templates, URLs and permissions; built on Django's generic class-based views, not locked inside /admin.
  • Batteries included — sortable, filterable, paginated tables (django-tables2, django-filter), crispy forms (django-crispy-forms), breadcrumbs, formsets, and nested parent/child URLs.
  • Grows with your app — optional extensions for workflows (django-fsm-2), polymorphic models (django-polymorphic), per-object permissions (django-guardian), ordering (django-ordered-model) and non-ORM resources.
  • Pluggable themes — bootstrap5 ships as the default; bring your own theme.
  • Fails early — Django system checks validate your configuration at startup.

Install

pip install django-crud-views

Optional extras: django-crud-views[guardian] (per-object permissions), django-crud-views[ordered] (up/down ordering), django-crud-views[all] (everything).

Try it online: the live demo runs the example project (log in as alice / alice or bob / bob; data resets daily).

Run the example project

The repository ships a runnable example project — the tutorial's library app plus one app per feature. All you need is Python 3.12+:

git clone https://github.com/jacob-consulting/django-crud-views.git
cd django-crud-views
python -m venv .venv
source .venv/bin/activate        # Windows: .venv\Scripts\activate
pip install -e ".[all,examples]"
cd examples/bootstrap5
python manage.py migrate
python manage.py seed
python manage.py runserver

Browse http://127.0.0.1:8000/ and log in with alice / alice. These instructions are CI-tested on Linux, macOS and Windows.

If you use uv and task, the shortcut is task dev && task run from the repository root.

What it is not

  • a replacement for Django's admin interface
  • a complete page building system with navigations and lots of widgets

Documentation

Full tutorial and reference: https://django-crud-views.readthedocs.io

Current version

Current version: 0.24.3

Metadata

Release files for django-crud-views 0.24.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-crud-views 0.24.3
File Size Uploaded
django_crud_views-0.24.3.tar.gz 2.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-crud-views 0.24.3
File Interpreter ABI Platform
django_crud_views-0.24.3-py3-none-any.whl Python 3 none any Details

Total release size: 2.4 MB

Release files / django_crud_views-0.24.3.tar.gz

Download URL django_crud_views-0.24.3.tar.gz
Size 2.3 MB
Tags Source
SHA-256 checksum
How to use checksums
99127ffef79752794fb1711dd23598f5e888cde4a06cfe5690220c6679c6cec2
BLAKE2b-256 checksum
How to use checksums
02321a8c8f9cc950f5e67e0689dfa1dab4771392207d9d36dde6e1454e0fe21b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / django_crud_views-0.24.3-py3-none-any.whl

Download URL django_crud_views-0.24.3-py3-none-any.whl
Size 189.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f990f363a025f77869bacb9d4539d14cc340cc080d987e042274c4a4d2d32954
BLAKE2b-256 checksum
How to use checksums
d2d59765c3efb7185f0ab52e5e6d5e55be29d477772e214965d383afa4941008
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release history Release notifications | RSS feed

0.29.0

2 release files

0.28.0

2 release files

This release

0.24.3 This release

2 release files

0.23.0

2 release files

0.22.0

2 release files

0.21.0

2 release files

0.19.0

2 release files

0.18.0

2 release files

0.17.0

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.12.1

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.2

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.12

2 release files

0.3.11

2 release files

0.3.8

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.0.11

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page