Member 13907431 Ответов: 0

Append_entry() не работает после добавления в первый раз. Я использую fieldlist с flask-wtf, jinja &Python 3.4


Я столкнулся с проблемой при добавлении fieldlist через append_entry в flask-wtf.

Я могу добавить одну строку полей из списка полей, но после добавления первой строки я не могу добавить вторую строку.

Ошибки не отображаются.

При первой попытке добавляется новая строка элементов списка полей, а в журнале сервера печатается "Data is King" и "True" (я включил это, чтобы увидеть, действительно ли кнопка add отправляет данные и цикл проходит).

Во второй попытке новая строка не добавляется, но страница перезагружается, а в журнале сервера печатается "Data is King" и "True" (это означает, что цикл выполняется, но команда append_entry не работает).

Я нашел тот же вопрос, заданный 4 года назад, но решение, данное в принятом ответе на этот вопрос, не решает проблему.

Ниже приведена ссылка.

https://stackoverflow.com/questions/8637831/cant-append-entry-fieldlist-in-flask-wtf-more-than-one#=

Я перепробовал все комбинации, но ничего не решает проблему (я занимаюсь этой проблемой уже более 48 часов).

Может кто-нибудь помочь, пожалуйста.

Что я уже пробовал:

сведения form.py

class FormCont(FlaskForm):
    description = StringField('Description',validators=[DataRequired()])
    start_time = FloatField('Start Time',validators=[DataRequired()])

class AddItemCont(FlaskForm):
    a = FloatField(validators=[DataRequired()])
    b = FloatField(validators=[DataRequired()])
    c = FloatField(validators=[DataRequired()])
    item_cont = FieldList(FormField(FormCont), min_entries=0, max_entries=100)
    add_item_cont = SubmitField("Add")
    remove_item_cont = SubmitField("Remove")
    submit = SubmitField()



сведения view.py

@additem.route('/additem/', methods = ['GET','POST'])
def additemcont():
form = AddItemCont(request.form)
if  form.add_item_cont.data:
    form.item_cont.append_entry()
    print ("Data is King")
    print (form.add_item_cont.data)
    return render_template('entry.html',form=form)


entry.html данные

<form action="{{url_for('additemcont')}}" method='POST' name='AddItemCont' class="form-horizontal">
{{ form.hidden_tag() }}
<div class = "row">
   <div class="col-md-1" >
   <form action="" method="POST" class="form-horizontal"><button type="submit" class="btn btn-success btn-xs" name="add_item_cont" value="add_item_cont"><span class="glyphicon glyphicon-plus" aria-hidden="true"></button>
   </form>
   </div>
</div>

<div class = "row"><div class="col-md-12" >
        {% for x in form.item_cont %}
        {% for i in x %}
           {{ i (class="form-control") }}
        {% endfor %}
        {% endfor %}
 </div></div>

0 Ответов