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
andreadonly_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 adminreadonly_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
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
Built Distribution
File details
Details for the file django_auto_admin_fieldsets-0.2.0.tar.gz
.
File metadata
- Download URL: django_auto_admin_fieldsets-0.2.0.tar.gz
- Upload date:
- Size: 4.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67bb7ea5f1eaa730740f52e4169c89a472d9e02f768177f22976d1570c790f01 |
|
MD5 | 236d524d37dbbd77e26d1fed09f47121 |
|
BLAKE2b-256 | 8cc52cc7678ed7988f3b74df59f2ebbe0ed4413ac5fc8b3cf37427621bd01c4c |
File details
Details for the file django_auto_admin_fieldsets-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: django_auto_admin_fieldsets-0.2.0-py3-none-any.whl
- Upload date:
- Size: 5.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | edba931777b8fdf15195055af9692ba167e89d7e4cfa601f4e42be26475d6370 |
|
MD5 | a31b54802ed620643d62cc5d7fdf3bf7 |
|
BLAKE2b-256 | ed0c3cf5b0530a15043e46d57cdcf8dee5500a834018ac38d2cb5faf9625a214 |