Django'da bir profil formu hazırlıyorum. Çok sayıda isteğe bağlı ekstra profil alanı var ama sadece bir seferde ikiyi göstermek istiyorum. Dinamik olarak göstermek istemediğim alanları nasıl gizlerim veya kaldırırım? Sen Formunda bu kodlama vardırDjango'da form alanlarını dinamik olarak nasıl gizlersiniz?
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)
İlgili yanıt: http://stackoverflow.com/a/1914812/462865 –