简体   繁体   English

第一次添加后,append_entry()不起作用。 我正在使用flask-wtf,jinja和Python 3.4的Fieldlist

[英]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.

相关问题 不能在Flask-wtf中多次追加_entry FieldList - can't append_entry FieldList in Flask-wtf more than one 如何在 Jinja 中为 Flask-WTF 设置默认值 - How do I set default value for Flask-WTF in Jinja 无法使用 wtforms、append_entry() 和 FieldList(FormField()) 更改动态添加的表单字段的标签 - Can't Change Labels for Dynamically-Added Form Fields Using wtforms, append_entry() and FieldList(FormField()) 如何使用Flask-WTF和Jinja2在多个页面上添加相同的登录表单作为模式? - How can I add the same login form as a modal on multiple pages using Flask-WTF and Jinja2? 测试使用“FieldList”和“FormField”的 Flask-WTF 表单 - Testing Flask-WTF forms that use `FieldList` and `FormField` RadioFields的Flask-WTF FieldList不允许动态默认值 - Flask-WTF FieldList of RadioFields not allowing dynamic default value 尝试使用&#39;pip install flask-wtf&#39;安装flask-wtf后没有名为&#39;flask_wtf&#39;的模块 - No module named 'flask_wtf' after trying to install flask-wtf with 'pip install flask-wtf' 用于无状态应用程序的 Python Flask-WTF CSRF - Python Flask-WTF CSRF for Stateless Application 如何在没有Jinja的情况下从Flask-wtf获取CSRF令牌? - How do I get the CSRF token from Flask-wtf without jinja? CSRF Token 始终为空(Flask-WTF、Jinja、Axios、JavaScript) - CSRF Token always empty (Flask-WTF, Jinja, Axios, JavaScript)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM