Tuesday, August 11, 2015

Re: display readonly or not

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 django-users+unsubscribe@googlegroups.com
> <mailto:django-users+unsubscribe@googlegroups.com>.
> To post to this group, send email to django-users@googlegroups.com
> <mailto:django-users@googlegroups.com>.
> 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 django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
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.

No comments:

Post a Comment