#25702: Port ModelAdmin.fieldset to BaseForm
-------------------------+-------------------------------------------------
Reporter: | Owner: nobody
Psycojoker |
Type: New | Status: new
feature |
Component: Forms | Version: master
Severity: Normal | Keywords: form modeladmin layout
Triage Stage: | admininterface
Unreviewed | Has patch: 0
Easy pickings: 0 | UI/UX: 0
-------------------------+-------------------------------------------------
In the admin interface it is possible to control the admin forms layout
using the //fieldset// attribute. This feature is described here:
https://docs.djangoproject.com/en/1.8/ref/contrib/admin/#django.contrib.admin.ModelAdmin.fieldsets
Here is the example from the documentation (modified to display the
feature that allows to display multiple fields in the same line):
{{{#!python
from django.contrib import admin
class FlatPageAdmin(admin.ModelAdmin):
fieldsets = (
(None, {
'fields': (('url', 'title'), ('content', 'sites'))
}),
('Advanced options', {
'classes': ('collapse',),
'fields': ('enable_comments', 'registration_required',
'template_name')
}),
)
}}}
The idea of this feature would be to port this exact behavior to the
standard django forms. Taking the first form example from the
documentation, this could look like this:
{{{#!python
from django import forms
class ContactForm(forms.Form):
subject = forms.CharField(max_length=100)
message = forms.CharField(widget=forms.Textarea)
sender = forms.EmailField()
cc_myself = forms.BooleanField(required=False)
fieldset = (
(None, {
"fields": (('sender', 'cc_myself'),),
}),
("Content", {
"fields": ("subject", "message"),
}),
)
}}}
Currently, there is no way to modify the form layout beside the field
order. This is very frustrating because this mean that if you want modify
the layout of a form, you need to explode it totally to do that or you
need to use another project (like django-crispy-forms [#point1 (1)] or
another one).
While not going to all the extend of what django-cripsy-forms or another
project is doing, //fieldset// is an already known and used convention
accross the django project and allowing it in standard forms seems like a
natural and intuitive choice.
[=#point1 (1)] http://django-crispy-
forms.readthedocs.org/en/latest/layouts.html
--
Ticket URL: <https://code.djangoproject.com/ticket/25702>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/053.6fef2711c1003ddbc790afb882c1b719%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.