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
Metadata
Release files for django-auto-admin-fieldsets 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| django_auto_admin_fieldsets-0.3.0.tar.gz | 4.9 kB | Without provenance | Details for django_auto_admin_fieldsets-0.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| django_auto_admin_fieldsets-0.3.0-py3-none-any.whl | Python 3 | none | any | Details for django_auto_admin_fieldsets-0.3.0-py3-none-any.whl |
Total release size: 10.5 kB
Release files / django_auto_admin_fieldsets-0.3.0.tar.gz
| Download URL | django_auto_admin_fieldsets-0.3.0.tar.gz |
|---|---|
| Size | 4.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
db916626edd233de1eeda876d6aab6f93eac6d0a1c34f87491d3d03543802ca2
|
|
BLAKE2b-256 checksum How to use checksums |
e2b8ccff57e030e2b6684b37b51d52401a330008115c7dd8d17fb3303f851807
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / django_auto_admin_fieldsets-0.3.0-py3-none-any.whl
| Download URL | django_auto_admin_fieldsets-0.3.0-py3-none-any.whl |
|---|---|
| Size | 5.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8e24f4757d6bd056c2392b044ab0cdb21d813f69e33caa981dda26ffe703db91
|
|
BLAKE2b-256 checksum How to use checksums |
9d1bf6bb7972b7580495d3f01e9a45ee021683eea22a787c33873a056462f9ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Security for django-auto-admin-fieldsets 0.3.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.