self.fields[name].widget.attrs['disabled'] = 'disabled'
self.fields[name].widget.attrs['readonly']=True

is not make real readonly to field, because if user can edit the html on
client side, and remove disabled="disabled" and readonly input atributtes

to problem of readonly fields, i currently use this:

https://github.com/luzfcb/django-simple-history/blob/wip-generic-views2/simple_history/forms.py


I prevent it here
https://github.com/luzfcb/django-simple-history/blob/wip-generic-views2/simple_history/forms.py#L24

Usage:

class FooBar(models.Model):
    foo = models.TextField(blank=True)
    bar = models.TextField(blank=True)

class MyFooBarForm(forms.ModelForm):
    class Meta:
        object = FooBar
        fields = ('foo', 'bar')

class MyReadOnlyBarForm(ReadOnlyFieldsMixin, forms.ModelForm):
    readonly_fields = ('bar')
    class Meta:
        object = FooBar
        fields = ('foo', 'bar')

my_all_field_readonly_foobarForm = new_readonly_form_class(MyFooBarForm)

my_foo_field_readonly_foobarForm = new_readonly_form_class(MyFooBarForm,
readonly_fields=('foo',))


I do not know if this is the best approach, but it was what I got so far.





On Tue, Mar 22, 2016 at 10:57 AM, Gorkem Tolan <[email protected]>
wrote:

> Actually I do to set permission to each field. A field in the form can be
> viewable and editable, only viewable, or hidden.  So if user has a
> permission to see the form, but edit some fields in the form, it gets very
> tricky especially for validation.
> For example I used these statements to make readonly field :
> self.fields[name].widget.attrs['disabled'] = 'disabled'
> self.fields[name].widget.attrs['readonly']=True
> Then the problem rises not to be able send disabled fields in the post.
>
> On Tuesday, March 22, 2016 at 9:31:43 AM UTC-4, bobhaugen wrote:
>>
>> Maybe you already know this, but you can do a lot of form tinkering in
>> __init__, like so:
>>
>>     def __init__(self, permissions_parameter=None, *args, **kwargs):
>>         super(FormName, self).__init__(*args, **kwargs)
>>         if permissions_parameter:
>>             #do a bunch of form tinkering
>>
> --
> 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 https://groups.google.com/group/django-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/877bb8f8-4b59-4353-a0e5-99e95f55811b%40googlegroups.com
> <https://groups.google.com/d/msgid/django-users/877bb8f8-4b59-4353-a0e5-99e95f55811b%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Fábio C. Barrionuevo da Luz
Palmas - Tocantins - Brasil - América do Sul

http://pythonclub.com.br/

Blog colaborativo sobre Python e tecnologias Relacionadas, mantido
totalmente no https://github.com/pythonclub/pythonclub.github.io .

Todos são livres para publicar. É só fazer fork, escrever sua postagem e
mandar o pull-request. Leia mais sobre como publicar em README.md e
contributing.md.
Regra básica de postagem:
"Você" acha interessante? É útil para "você"? Pode ser utilizado com Python
ou é útil para quem usa Python? Está esperando o que? Publica logo, que
estou louco para ler...

-- 
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 https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAPVjvMbZt1E3B7qORzVFY%3DsFg93J05Y-HUaFY8__T6P10W8eqw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to