Estoy haciendo un formulario de perfil en Django. Hay muchos campos de perfil adicionales opcionales, pero solo me gustaría mostrar dos a la vez. ¿Cómo oculto o elimino los campos que no quiero mostrar dinámicamente?¿Cómo se ocultan dinámicamente los campos de formulario en Django?
Esto es lo que tengo hasta ahora:
class UserProfileForm(forms.ModelForm):
extra_fields = ('field1', 'field2', 'field3')
extra_field_total = 2
class Meta:
model = UserProfile
def __init__(self, *args, **kwargs):
extra_field_count = 0
for key, field in self.base_fields.iteritems():
if key in self.extra_fields:
if extra_field_count < self.extra_field_total:
extra_field_count += 1
else:
# do something here to hide or remove field
super(UserProfileForm, self).__init__(*args, **kwargs)
Respuesta relacionada: http://stackoverflow.com/a/1914812/462865 –