[英]append_entry() is not working after appending first time. I am using Fieldlist with flask-wtf, jinja & Python 3.4
I am facing issue while appending fieldlist through append_entry in flask-wtf. 我在flask-wtf中通过append_entry附加字段列表时遇到问题。
I am able to add one row of fields from fieldlist but after adding first row, i am not able to add second row. 我可以从字段列表中添加一行字段,但是在添加第一行之后,我无法添加第二行。
No errors are shown. 没有显示错误。
In first attempt a new row is added of field list items and in server log "Data is King" and "True" is printed (I have included this to see if add button sends data and loop actually goes through). 第一次尝试在字段列表项中添加新行,并在服务器日志中显示“数据为王”,并打印“ True”(我已经包括了它,以查看“添加”按钮是否发送数据并且循环实际通过)。
In second attemt new row is not added but page reloads and in server log "Data is King" and "True" is printed (This means loop is executed but append_entry command does not work). 在第二个属性中,不添加新行,但重新加载页面,并在服务器日志中显示“数据为王”,并打印“真”(这意味着执行了循环,但是append_entry命令不起作用)。
I found same question asked 4 years ago, but solution given in that question's accepted answer does not solve the problem. 我发现了4年前提出的同一个问题,但是该问题的公认答案中给出的解决方案不能解决问题。
Below is the link. 以下是链接。
https://stackoverflow.com/questions/8637831/cant-append-entry-fieldlist-in-flask-wtf-more-than-one# = https://stackoverflow.com/questions/8637831/cant-append-entry-fieldlist-in-flask-wtf-more-than-one# =
I have tried all the combinations but nothing solves the problem (am upto this problem for more than 48hrs now). 我已经尝试了所有组合,但是没有解决任何问题的方法(到目前为止,这个问题已经解决了48小时以上)。
Can someone help please. 有人可以帮忙吗。
form.py Data 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 data 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 data 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>
Have you tried initializing the form and passing it to append_entry
? 您是否尝试过初始化表单并将其传递给append_entry
?
@additem.route('/additem/', methods = ['GET','POST'])
def additemcont():
form = AddItemCont(request.form)
if form.add_item_cont.data:
### here
form_cont = FormCont()
form.item_cont.append_entry(form_cont)
####
print ("Data is King")
print (form.add_item_cont.data)
return render_template('entry.html',form=form)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.