#5986: Easy way to customize ordering of fields on forms that use inheritance
-------------------------------------+-------------------------------------
     Reporter:  emes                 |                    Owner:  nobody
         Type:  New feature          |                   Status:  new
    Component:  Forms                |                  Version:  master
     Severity:  Normal               |               Resolution:
     Keywords:  field order weight   |             Triage Stage:  Accepted
  form newforms                      |      Needs documentation:  0
    Has patch:  1                    |  Patch needs improvement:  0
  Needs tests:  0                    |                    UI/UX:  0
Easy pickings:  0                    |
-------------------------------------+-------------------------------------

Comment (by tanner):

 I have revised my PR to make it fully backwards-compatible.

 The field_order attribute/argument is used to rearrange existing fields.

 If a key of an existing field is missing in the list, the field is
 appended to the fields in the original order.
 This way new fields in subclasses are just added (as before) if the
 subclass does not override field_order.

 If a key in field_order refers to a non-existing field, it is simply
 ignored.
 This make is possible to remove a field in a subclass by overriding it
 with None, without overriding field_order.
 Again, this won't break existing subclasses.

 If you do not define Form.field_order or set it None, the default order is
 kept.

 There are now three ways to set the field order:

 1. set the class variable as default for all instances

 2. pass field_order as argument when instantiating a Form, e.g., when
 calling the parent constructor

 3. use the order_fields() method to rearrange the field order of an
 instance, e.g., in a subclass constructor after some extra fields have
 been added.

--
Ticket URL: <https://code.djangoproject.com/ticket/5986#comment:32>
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/062.fff24afc55d134f4e5bb7d6938e428a1%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to