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
excludeandreadonly_fieldssettings - 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 . import models
@admin.register(models.MyModel)
class MyModelAdmin(AutoFieldsetsMixin, admin.ModelAdmin):
# 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__"
Using the Convenience ModelAdmin
from django.contrib import admin
from django_auto_admin_fieldsets.admin import AutoFieldsetsModelAdmin
from . import models
@admin.register(models.MyModel)
class MyModelAdmin(AutoFieldsetsModelAdmin):
# Define fieldsets as usual with a placeholder
fieldsets = [
("Basic Information", {"fields": ["title", "slug"]}),
("Content", {"fields": ["__remaining__"]}), # All other fields will appear here
]
Using the Standalone Function
from django.contrib import admin
from django_auto_admin_fieldsets.admin import auto_add_fields_to_fieldsets
from . import models
@admin.register(models.MyModel)
class MyModelAdmin(admin.ModelAdmin):
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 [],
placeholder="__remaining__",
)
admin.site.register(MyModel, MyModelAdmin)
Removing fields from fieldsets
from django_auto_admin_fieldsets.admin import remove_fields_from_fieldsets
fieldsets = [
("Basic Information", {"fields": ["title", "slug", "hide_title"]}),
("Content", {"fields": ["description", "noindex"]}),
]
fieldsets = remove_fields_from_fieldsets(fieldsets, "hide_title")
fieldsets = remove_fields_from_fieldsets(fieldsets, ["noindex"])
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. If
you do not want a field to appear in the resulting fieldsets, add it to the
standard exclude list.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_auto_admin_fieldsets-0.3.0.tar.gz.
File metadata
- Download URL: django_auto_admin_fieldsets-0.3.0.tar.gz
- Upload date:
- Size: 4.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db916626edd233de1eeda876d6aab6f93eac6d0a1c34f87491d3d03543802ca2
|
|
| MD5 |
b7992ebb4c64d4341f873fabd100ac70
|
|
| BLAKE2b-256 |
e2b8ccff57e030e2b6684b37b51d52401a330008115c7dd8d17fb3303f851807
|
File details
Details for the file django_auto_admin_fieldsets-0.3.0-py3-none-any.whl.
File metadata
- Download URL: django_auto_admin_fieldsets-0.3.0-py3-none-any.whl
- Upload date:
- Size: 5.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e24f4757d6bd056c2392b044ab0cdb21d813f69e33caa981dda26ffe703db91
|
|
| MD5 |
4d94ad48b60e75a186396486f6df5784
|
|
| BLAKE2b-256 |
9d1bf6bb7972b7580495d3f01e9a45ee021683eea22a787c33873a056462f9ef
|