2017-08-31 5 views
0

言って私は2つのフィールドが含まれています(ただし、そのような5つの許可されるエントリの最大までのFieldListを持っている場合:私はそれぞれを呼び出したい場合はフラスコ-WTForms-コールフィールドリストのentires個別テンプレートで

class NameForm(Form): 
    firstname = StringField('firstname') 
    surname = StringField('surname') 

class Combine(Form): 
    combination = FieldList(FormField(NameForm), min_entries=1, max_entries=5) 

私はそれのインデックスによってそれぞれ呼び出す必要が読んだのテンプレートに表示される個別のエントリ私のテンプレートで

私はそうのように呼び出して試してみた:私はエラーを取得する和知ため

{{ form.description.description-0 }} 

はTypeError:のためのサポートされていないオペランドのタイプ(S) - : 'STR' と「int型

私も次のことを試してみた:

の1のための2つのフィールドを生成しない
{{ form.combination(index="combination-0") }} 

組み合わせフォームの潜在的なエントリしかし、数字を1、2、3、または4(各インデックスを最大まで表すために)に変更すると、画面エントリ/インデックスに表示される文字はguiのコンビネーション0と表示されるため変更されません。 インデックスを正しく呼び出すのか、間違ったツリーを吠えるのですか? おかげ

答えて

0

は、あなたはそれが最も可能性の高い反復処理したい:

{% for entry in form.combination %} 
    {{ entry.form.firstname }} 
    {{ entry.form.surname }} 
{% endfor %} 

代わりに、あなたは2番目のエントリを取得しなければならないならば、あなたは

{{ form.combination.entries[1].firstname }} 

などを行うことができます。

さらに多くのエントリを作成するためのフォームデータがない限り、存在しないエントリのインデックスを作成しようとするIndexErrorを取得することに注意してください。 min_entries=1は少なくとも1つのエントリのみを保証します。

プログラムでエントリを追加する場合は、append_entryを使用します。

関連する問題