Renderizar itens no html em formato de label

47 views
Skip to first unread message

Adley Damaceno

unread,
Nov 19, 2012, 12:11:01 PM11/19/12
to django...@googlegroups.com
Existe algum meio de eu instanciar um formulario (  com os campos ja preenchidos ) e deixar os campos não editaveis?

Minha pergunta é essa , existe algum meio de a pessoa apenas visualizar o formulário?
nem que seja por javascript ou próprio django?

Leonardo S

unread,
Nov 19, 2012, 12:17:15 PM11/19/12
to django...@googlegroups.com
Tenta algo assim. Não testei:
test_field = forms.CharField(label=u'Test',
widget=forms.TextInput(attrs={u'readonly':u'readonly'}))

Em 19 de novembro de 2012 14:11, Adley Damaceno
<adleyd...@gmail.com> escreveu:
> --
>
>

Matheus Lima

unread,
Nov 19, 2012, 12:17:06 PM11/19/12
to django...@googlegroups.com
Tem várias formas de fazer isso. Uma delas é essa:

No Form, criar o campo e passar o atributo "readonly" pro widget.


sku = forms.CharField(widget = forms.TextInput(attrs={'readonly':'readonly'}))



Coloca aí no google "django form readonly", tem várias formas.


Em 19 de novembro de 2012 14:11, Adley Damaceno <adleyd...@gmail.com> escreveu:

--
 
 



--
Att,

Matheus dos Santos Lima     


Adley Damaceno

unread,
Nov 19, 2012, 12:24:48 PM11/19/12
to django...@googlegroups.com
Valeu pessoal, vou dar uma olhada....

Adley Damaceno

unread,
Nov 19, 2012, 12:32:46 PM11/19/12
to django...@googlegroups.com
Não tem como deixar tudo readonly?

Matheus Lima

unread,
Nov 19, 2012, 12:43:33 PM11/19/12
to django...@googlegroups.com
Eu sei uma forma de fazer, mas não sei se é a melhor solução.

Sobrescrevendo o método __init__() do form, dá fazer isso aqui:


def __init__(self, *args, **kwargs): 
    super(MeuForm, self).__init__(*args, **kwargs)
    for field in self.fields:
        field.widget.attrs.update({'readonly':'readonly'})


Assim todos os campos set tornam readonly. Também é uma das formas, tem outras formas de fazer, como por exemplo, extender a classe forms.Form ou forms.ModelForm pra ficar um ReadOnlyForm.


--
 
 

leonardo

unread,
Nov 19, 2012, 1:09:47 PM11/19/12
to django...@googlegroups.com
Pode estender a classe CharField e deixar o padrão como readonly. Aí é só instanciar algo tipo ReadOnlyCharField.

Adley Damaceno

unread,
Nov 20, 2012, 9:21:05 AM11/20/12
to django...@googlegroups.com

def __init__(self, *args, **kwargs): 
    super(MeuForm, self).__init__(*args, **kwargs)
    for field in self.fields:
        field.widget.attrs.update({'readonly':'readonly'})
isso não funcionou, os campos continuam sendo editáveis


--
 
 

Adley Damaceno

unread,
Nov 20, 2012, 9:24:59 AM11/20/12
to django...@googlegroups.com
class FormVisualizarRequisicao(forms.ModelForm):
    class Meta:
        model = models.CadastrarRequisicao     
def __init__(self, *args, **kwargs):
    super(FormVisualizarRequisicao, self).__init__(*args, **kwargs)

Adley Damaceno

unread,
Nov 20, 2012, 9:25:20 AM11/20/12
to django...@googlegroups.com
Não funcionou =/


class FormVisualizarRequisicao(forms.ModelForm):
    class Meta:
        model = models.CadastrarRequisicao     
def __init__(self, *args, **kwargs):
    super(FormVisualizarRequisicao, self).__init__(*args, **kwargs)

    for field in self.fields:
        field.widget.attrs.update({'readonly':'readonly'})
    
Em 20 de novembro de 2012 12:21, Adley Damaceno <adle...@yahoo.com.br> escreveu:
Reply all
Reply to author
Forward
Message has been deleted
0 new messages