Skip to main content

TreeModelAdmin for Wagtail

Project description

Wagtail-TreeModelAdmin

Build Status Coverage Status

TreeModelAdmin illustration with the books and authors example below

Wagtail-TreeModelAdmin is an extension for Wagtail's wagtail-modeladmin that allows for a page explorer-like navigation of Django model relationships within the Wagtail admin.

Dependencies

It should be compatible with all intermediate versions, as well. If you find that it is not, please file an issue.

Installation

  1. Install wagtail-treemodeladmin:
pip install wagtail-treemodeladmin
  1. Add treemodeladmin (and wagtail_modeladmin if it's not already) as an installed app in your Django settings.py:
INSTALLED_APPS = (
    ...
    'wagtail_modeladmin',
    'treemodeladmin',
    ...
)

Concepts

Wagtail-TreeModelAdmin allows for a Wagtail page explorer-like navigation of Django one-to-many relationships within the Wagtail admin. In doing this, it conceptualizes the Django ForeignKey relationship as one of parents-to-children. The parent is the destination to of the ForeignKey relationship, the child is the source of the relationship.

Wagtail-TreeModelAdmin is an extension of wagtail-modeladmin. It is intended to be used exactly like ModelAdmin.

Usage

Quickstart

To use Wagtail-TreeModelAdmin you first need to define some models that will be exposed in the Wagtail Admin.

# libraryapp/models.py

from django.db import models


class Author(models.Model):
    name = models.CharField(max_length=255)

class Book(models.Model):
    author = models.ForeignKey(Author, on_delete=models.PROTECT)
    title = models.CharField(max_length=255)

Then create the TreeModelAdmin subclasses and register the root the tree using modeladmin_register:

# libraryapp/wagtail_hooks.py
from wagtail_modeladmin.options import modeladmin_register

from treemodeladmin.options import TreeModelAdmin

from libraryapp.models import Author, Book


class BookModelAdmin(TreeModelAdmin):
    model = Book
    parent_field = 'author'


@modeladmin_register
class AuthorModelAdmin(TreeModelAdmin):
    menu_label = 'Library'
    menu_icon = 'list-ul'
    model = Author
    child_field = 'book_set'
    child_model_admin = BookModelAdmin

Then visit the Wagtail admin. Library will be in the menu, and will give you a list of authors, and each author will have a link that will take you to their books.

API

Wagtail-TreeModelAdmin uses three new attributes on ModelAdmin subclasses to express parent/child relationships:

  • parent_field: The name of the Django ForeignKey on a child model.
  • child_field: The related_name on a Django ForeignKey.
  • child_model_admin

Any TreeModelAdmin subclass can specify both parent and child relationships. The root of the tree (either the TreeModelAdmin included in a ModelAdminGroup or the @modeladmin_registered TreeModelAdmin subclass) should only include child_* fields.

Getting help

Please add issues to the issue tracker.

Getting involved

General instructions on how to contribute can be found in CONTRIBUTING.

Licensing

  1. TERMS
  2. LICENSE
  3. CFPB Source Code Policy

Credits and references

  1. Forked from cfgov-refresh

Project details


Download files

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

Source Distribution

wagtail_treemodeladmin-1.10.1.tar.gz (182.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wagtail_treemodeladmin-1.10.1-py3-none-any.whl (21.2 kB view details)

Uploaded Python 3

File details

Details for the file wagtail_treemodeladmin-1.10.1.tar.gz.

File metadata

  • Download URL: wagtail_treemodeladmin-1.10.1.tar.gz
  • Upload date:
  • Size: 182.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for wagtail_treemodeladmin-1.10.1.tar.gz
Algorithm Hash digest
SHA256 f4d83463cf0cff23354c315c70e8c84b6021aa79cc762e5a403f1f2b3c25240c
MD5 42857315769e21c78ba4647e3a848f0f
BLAKE2b-256 2afe9f9f78038e36ffd1dbe192c5210fdb3bc381280b77ee781fc7fe4b98322c

See more details on using hashes here.

Provenance

The following attestation bundles were made for wagtail_treemodeladmin-1.10.1.tar.gz:

Publisher: release.yml on cfpb/wagtail-treemodeladmin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wagtail_treemodeladmin-1.10.1-py3-none-any.whl.

File metadata

File hashes

Hashes for wagtail_treemodeladmin-1.10.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c05e7c5dca48f785d76061a82090d0bd27384d2be5343363069c95c9b3bc359d
MD5 b3313bf274642de0ad3d338d5dd73964
BLAKE2b-256 a581abc96db7d81602952555f5cc3f4e99226c2c4a463af5b1c79799d04d623f

See more details on using hashes here.

Provenance

The following attestation bundles were made for wagtail_treemodeladmin-1.10.1-py3-none-any.whl:

Publisher: release.yml on cfpb/wagtail-treemodeladmin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page