#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 django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
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