On 11/08/2015 7:17 PM, Daniel Roseman wrote:
On Tuesday, 11 August 2015 06:24:32 UTC+1, Mike Dewhirst wrote:
Â

    There is a get_read_only() method in the admin.ModelAdmin class. It
    normally returns self.readonly_fields but you can give it a callable.

    
https://docs.djangoproject.com/en/1.8/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_readonly_fields
    
<https://docs.djangoproject.com/en/1.8/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_readonly_fields>


    As well as defining any readonly fields (for everyone) you want
    something like ...

    def ro_fields(self, request, obj=None):
    Â  Â  Â if obj is None or request.user.is_superuser:
    Â  Â  Â  Â  Â return self.readonly_fields
    Â  Â  Â else:
    Â  Â  Â  Â  Â return self.model._meta.get_all_field_names()

    ... then get_readonly_fields = ro_fields should make it happen like
    your
    pseudocode.

    Mike


Why do you define a separate method, then alias to get_readonly_fields?
Why not override the method directly?

Because in some places/models in the admin I don't want to override the method; and in all (my) cases there needs to be readonly "modified" and "modified_by" fields for superusers as well.

Further, I put my ro_fields method in a common module and import it where required in a number of apps in that project.

Cheers

Mike

--
Daniel.Â

--
You received this message because you are subscribed to the Google
Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected]
<mailto:[email protected]>.
To post to this group, send email to [email protected]
<mailto:[email protected]>.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/b43856c6-4e6f-435a-bee2-886110d2aa1a%40googlegroups.com
<https://groups.google.com/d/msgid/django-users/b43856c6-4e6f-435a-bee2-886110d2aa1a%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django 
users" 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].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/55C9DC37.1040202%40dewhirst.com.au.
For more options, visit https://groups.google.com/d/optout.

Reply via email to