Tengo un modelo como este:¿Cómo puedo desactivar un campo modelo en una forma Django
class MyModel(models.Model):
REGULAR = 1
PREMIUM = 2
STATUS_CHOICES = ((REGULAR, "regular"), (PREMIUM, "premium"))
name = models.CharField(max_length=30)
status = models.IntegerField(choices = STATUS_CHOICES, default = REGULAR)
class MyForm(forms.ModelForm):
class Meta:
model = models.MyModel
En una vista que inicializar un campo y trato de hacerlo no editable:
myform = MyForm(initial = {'status': requested_status})
myform.fields['status'].editable = False
Pero el usuario aún puede cambiar ese campo.
¿Cuál es la forma real de lograr lo que busco?
El atributo readonly es. ¡Gracias! – jammon
Y el truco con 'self.instance.status' es realmente bueno. – jammon
¡Oh, no! Lo intenté, y 'readonly' no hace la diferencia. Y (http://www.w3schools.com/tags/att_input_readonly.asp) dice 'El atributo readonly se puede usar con o .' En mi caso, es un botón de selección o de radio. Entonces, ¿más ideas? – jammon