#28585: Set `has_file_field` context attribute for admin change forms 
conditionally
on form `is_multipart` method
-----------------------------------------+--------------------------
               Reporter:  Mark Rogaski   |          Owner:  nobody
                   Type:  New feature    |         Status:  assigned
              Component:  contrib.admin  |        Version:  1.11
               Severity:  Normal         |       Keywords:
           Triage Stage:  Unreviewed     |      Has patch:  0
    Needs documentation:  0              |    Needs tests:  0
Patch needs improvement:  0              |  Easy pickings:  0
                  UI/UX:  0              |
-----------------------------------------+--------------------------
 In django.contrib.admin.options.ModelAdmin:

 {{{
     def render_change_form(self, request, context, add=False,
 change=False, form_url='', obj=None):
         ...
         context.update({
             ...
             'has_file_field': True,  # FIXME - this should check if form
 or formsets have a FileField,
             ...
 }}}

 This attribute is used to determine whether a `multipart/form-data` is
 used for the form content type instead of `application/x-www-form-
 urlencoded`.

 I'd like to implement this behavior as it appears to have been intended
 (and I have a situation where multipart forms should only be used if
 necessary for file uploads).  However, it's likely that some applications
 might be adversely impacted if the behavior changes.   Perhaps adding an
 `AVOID_MULTIPART_ADMIN_FORMS` setting or an `avoid_multipart ModelAdmin`
 attribute that defaults to the current behavior is appropriate (better
 suggestions for the naming are welcome).

 In any case, I'd like to be able to have non-multipart forms returned when
 multipart isn't needed without having to subclass ModelAdmin.

 I am also happy to submit a PR for this based upon the preferred approach
 to backward compatibility.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/28585>
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/051.f2aa7a1d586ae67459ea12adfe661b39%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to