Skip to main content

A Django utility for automatically handling unspecified fields in admin fieldsets

Project description

Django Auto Admin Fieldsets

A Django utility for automatically handling unspecified fields in ModelAdmin fieldsets.

Installation

pip install django-auto-admin-fieldsets

Features

  • Automatically add unspecified model fields to a designated placeholder in Django admin fieldsets
  • Works with all field types, including many-to-many fields
  • Respects exclude and readonly_fields settings
  • Supports custom placeholders
  • Provides both a mixin and a standalone function for maximum flexibility

Usage

Using the Mixin

from django.contrib import admin
from django_auto_admin_fieldsets.admin import AutoFieldsetsMixin
from .models import MyModel

class MyModelAdmin(AutoFieldsetsMixin, admin.ModelAdmin):
    model = MyModel

    # Define fieldsets as usual with a placeholder
    fieldsets = [
        ("Basic Information", {"fields": ["title", "slug"]}),
        ("Content", {"fields": ["__remaining__"]}),  # All other fields will appear here
    ]

    # Optional: customize the placeholder (default is "__remaining__")
    remaining_fields_placeholder = "__remaining__"

admin.site.register(MyModel, MyModelAdmin)

Using the Convenience ModelAdmin

from django.contrib import admin
from django_auto_admin_fieldsets.admin import AutoFieldsetsModelAdmin
from .models import MyModel

class MyModelAdmin(AutoFieldsetsModelAdmin):
    model = MyModel

    # Define fieldsets as usual with a placeholder
    fieldsets = [
        ("Basic Information", {"fields": ["title", "slug"]}),
        ("Content", {"fields": ["__remaining__"]}),  # All other fields will appear here
    ]

admin.site.register(MyModel, MyModelAdmin)

Using the Standalone Function

from django.contrib import admin
from django_auto_admin_fieldsets.admin import auto_add_fields_to_fieldsets
from .models import MyModel

class MyModelAdmin(admin.ModelAdmin):
    model = MyModel

    fieldsets = [
        ("Basic Information", {"fields": ["title", "slug"]}),
        ("Content", {"fields": ["__remaining__"]}),
    ]

    def get_fieldsets(self, request, obj=None):
        fieldsets = super().get_fieldsets(request, obj)
        return auto_add_fields_to_fieldsets(
            model=self.model,
            fieldsets=fieldsets,
            exclude=self.exclude or [],
            readonly_fields=self.get_readonly_fields(request, obj),
            placeholder="__remaining__",
        )

admin.site.register(MyModel, MyModelAdmin)

Configuration Options

  • remaining_fields_placeholder: The placeholder string to look for in your fieldsets (default: "__remaining__")
  • The function also respects the standard Django admin configuration options:
    • exclude: Fields that should not be displayed in the admin
    • readonly_fields: Fields that should be displayed as read-only

Development

Running Tests

Tests should be run using tox, which tests against multiple Python and Django versions:

tox

This will run the test suite against all supported Python and Django combinations as defined in tox.ini.

Code Quality

This project uses pre-commit for code quality checks. After cloning the repository, install the pre-commit hooks:

pre-commit install

The pre-commit configuration includes ruff for linting and formatting. Configuration can be found in pyproject.toml.

Compatibility

  • Python: 3.10 and above
  • Django: 4.2, 5.1, and 5.2 (also tested with Django main)

License

MIT

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

django_auto_admin_fieldsets-0.2.0.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file django_auto_admin_fieldsets-0.2.0.tar.gz.

File metadata

File hashes

Hashes for django_auto_admin_fieldsets-0.2.0.tar.gz
Algorithm Hash digest
SHA256 67bb7ea5f1eaa730740f52e4169c89a472d9e02f768177f22976d1570c790f01
MD5 236d524d37dbbd77e26d1fed09f47121
BLAKE2b-256 8cc52cc7678ed7988f3b74df59f2ebbe0ed4413ac5fc8b3cf37427621bd01c4c

See more details on using hashes here.

File details

Details for the file django_auto_admin_fieldsets-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_auto_admin_fieldsets-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 edba931777b8fdf15195055af9692ba167e89d7e4cfa601f4e42be26475d6370
MD5 a31b54802ed620643d62cc5d7fdf3bf7
BLAKE2b-256 ed0c3cf5b0530a15043e46d57cdcf8dee5500a834018ac38d2cb5faf9625a214

See more details on using hashes here.

Supported by

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