私はDjango、GAEの初心者です.Djangoを使用していくつかの動的フォームを作成しようとしています。考え方は、1つのドロップダウンボックスからの選択が別のフィールドの値を決定するということです。具体的にはGAEでホストされているDjangoの動的フォーム
、ユーザ
- 彼は」の「B」を選択した場合、次に「body_weight」の値は同様に178、
- なり、「種」の「A」を選択した場合種」、の値 『body_weight』は1580年で、
- 選択した場合は 『種』の 『C』を、彼は埋めることができ、 『body_weight』
私はいくつかの例を読み、いくつかの機能を発見しました「init」や「super」を含める必要があります。したがって、コードを変更しましたが、それでも機能しませんでした。
私の問題は、次のとおりです。
- "のinit" と "スーパー" を配置する右の位置とは何ですか?
- ここに「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)
あなたのためにありがとうlpですが、これはAjaxをインポートせずに終了できますか? –
私は親指の質問がこれより簡単だと信じています:いくつかの可能なユーザ入力の1つを与えられた場合、Djangoフォームを使って、モデルに異なる対応する値(入力そのものではありません) –
@ダン・サンダーソン、そうです。私の目的は、2つの入力(最初のものはユーザーの選択に由来し、もう1つは前のものに依存する)を保存して表示することです(Webページを即座にリフレッシュする必要があります)。将来、これらの入力をクラウドベースのSQLに送信します。だから提案?ありがとう! –