#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.

Reply via email to