Alexander A. E. Full Stack Developer

Cómo hacer un form field de solo lectura en django

Para hacer un "Form Field" de solo lectura basta utilizar el atributo "attrs" de los widgets y agregar la propiedad readonly como en el siguiente ejemplo:

Antes:

::python
from django import forms

class CommentForm(forms.Form):
    name = forms.CharField()

Después:

::python
class CommentForm(forms.Form):
    name = forms.CharField(
        widget=forms.TextInput(attrs={'readonly':'readonly'})
    )

Observación:

Notemos que cuando un input es de solo lectura, el usuario no puede modificarlo pero se sigue enviando en el formulario.

Para desactivar el envío totalmente se puede usar el atributo disabled de los form fields.

::python
class CommentForm(forms.Form):
    name = forms.CharField(disabled=True)

Referencias:

Comentarios !

comments powered by Disqus