Alexander A. E.Django 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:

from django import forms

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

Después:

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.

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

Referencias:

Comentarios !

comments powered byDisqus