Вы можете переопределить методы visible_fields
(или hidden_fields
, если вы действительно хотите скрытое поле) в своей форме, чтобы пометить их как «невидимые» (или скрытые входы).Подробнее см. документы .
РЕДАКТИРОВАТЬ: что-то вроде этого должно работать ...
class sendFleet(forms.Form):
[...]
ship1 = forms.IntegerField(initial=0)
ship2 = forms.IntegerField(initial=0)
def visible_fields(self):
# create a list of fields you don't want to display
invisibles = []
if self.instance.ship1 == 0:
invisibles.append(self.fields['ship1'])
# remove fields from the list of visible fields
visibles = super(MailForm, self).visible_fields()
return [v for v in visibles if v.field not in invisibles]
Тогда в вашем шаблоне:
{% for field in form.visible_fields %}
{{ field.label_tag }} : {{ field }}
{% endfor %}