#30577: feature request: custom rendering for readonly fields in admin
-------------------------------+--------------------------------------
     Reporter:  David          |                    Owner:  nobody
         Type:  New feature    |                   Status:  new
    Component:  contrib.admin  |                  Version:  2.2
     Severity:  Normal         |               Resolution:
     Keywords:                 |             Triage Stage:  Unreviewed
    Has patch:  0              |      Needs documentation:  0
  Needs tests:  0              |  Patch needs improvement:  0
Easy pickings:  0              |                    UI/UX:  0
-------------------------------+--------------------------------------

Comment (by Carlton Gibson):

 Hi David.

 This is interesting. I think I see where you're coming from but, could I
 ask you to put together an minimal project that demonstrates exactly the
 issue you're seeing — perhaps with some screenshots etc — so we can make
 sure we're 100% clear?

 I'm not sure about an adjustment here. I think it would depend on exactly
 what's being proposed. Do you have a specific implementation idea?

 It may be that there's a work-around.

 bf39978a53f117ca02e9a0c78b76664a41a54745 introduced a check on the widget
 for a `read_only` attribute, when rendering `AdminReadonlyField`


 {{{
 if field in self.form.fields:
     widget = self.form[field].field.widget
     # This isn't elegant but suffices for contrib.auth's
     # ReadOnlyPasswordHashWidget.
     if getattr(widget, 'read_only', False):
         return widget.render(field, value)
 }}}

 If you were to override, `ModelAdmin.get_form()` to set a custom widget
 (with `read_only=True) on the required field, when the user did not have
 the `change` permission, you should 🤔 be able to leverage this to get the
 behaviour you need. (If you could put together that test project it would
 be easy enough to have a play with this...)

 Given these questions, and that #14802 was closed as `wontfix`, I'm going
 to close this as `needsinfo` right now. A sample project plus a proposal
 is probably needed to progress. With just a sample project, asking on the
 DevelopersMailingList might provide some help. Exploring the work-around
 would be the shortest route forward.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/30577#comment:1>
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/064.5385553fdc5517a113e510ad34530b1f%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to