Я новичок в Django, GAE, и столкнулся с некоторыми проблемами, когда пытался создавать динамические формы с использованием Django. Идея состоит в том, что выбор, сделанный из одного раскрывающегося списка, определяет значение в другом поле.
Подробно, если пользователь
- выберите «A» в «Species», тогда значение в «body_weight» будет 178. Аналогично,
- если он выберет "B" в "Видах", значение в "body_weight" будет 1580, а
- если выбрать «С» в «Видах», то он может заполнить «body_weight»
Я прочитал несколько примеров и обнаружил некоторые функции, такие как «init, и super должен быть включен». Таким образом, я изменил свои коды, но он все еще не работал.
Мои проблемы:
- Какова правильная позиция для размещения " init " и "super"?
- Мне нужно здесь "self.field"?
Все предложения приветствуются!
Спасибо!
Вот код.
Species_CHOICES=(('178','A'),('1580','B'),('','C'))
class Inp(forms.Form):
Species = forms.ChoiceField(label='Species', choices=Species_CHOICES, initial='A')
#Here detect the choice made by the user
def get_STB_choices(Species):
if Species=='178':
r= 178
elif Species=='1580':
r= 1580
else:
r= 4440
return a
#assign values to a new parameter based on user's choice
def __init__(self, *args, **kwargs):
super(Inp, self).__init__(*args, **kwargs)
body_weight=forms.FloatField(required=True, label='Body weight', initial=get_STB_choices(Species))
#write out in HTML
class InputPage(webapp.RequestHandler):
def get(self):
html = str(Inp())
self.response.out.write(html)