Tuesday, October 30, 2012

Re: Easy way to make all form fields read only?

On Mon, Oct 29, 2012 at 8:04 PM, Matthew Woodward <matt@mattwoodward.com> wrote:
> Semi-new to Django and working on my first "real" app, and I have a need
> based on the user's credentials to display forms as either editable or
> read-only. (Note this doesn't have anything to do with the Django admin in
> case that has any bearing on the discussion.)
>
> Is there some fancy whiz-bang filter or middleware-type doo-dad (you can
> tell I'm still learning all the terminology) that would easily make all form
> fields read only?
>
> I thought about using javascript (this is an internal app so we can mandate
> javascript be enabled) but before I went that route figured I'd ask if
> anyone has had to do this and how they approached it.
>
> Personally I think it's weird to show someone a form they can't edit as
> opposed to just dumping them to a static display page, but wasn't my call.
>
> Thanks!
>
> --

You *might* be able to do this with a class that you add to the form tag
when you're read only, and CSS rules for the various types of inputs that
make them disabled when used as a descendent of something with that
class. You should still, of course, protect in the view against a disallowed
user submitting the form -- we all know that bad guys can use firebug to
modify the DOM, right? Another protective hack would be to omit the
CSRF token when the form is read only.

Bill

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

No comments:

Post a Comment