【问题标题】:Flask-WTForms and hidden fieldsFlask-WTForms 和隐藏字段
【发布时间】:2018-04-02 17:29:45
【问题描述】:

我正在尝试生成一系列表单,每个表单都包含隐藏字段中的特定值。

这是我的查看器模板的代码:

<div class="container">
       <form method="POST" action="{{ url_for('list') }}">
           <dl>
                        {{ form.csrf_token }}
                        {{ form.wishlist.label }}
                        {{ form.wishlist }}
                        {{ form.item_url_field(value="" ) }}

                      <input class="btn btn-primary" type="submit" value="Login">
                      </dl>
                  </form>
              </div>

我正在努力解决的具体问题是在这个级别:

{{ form.item_url_field(value="" ) }}

如果我尝试这样的事情:

   {{ form.item_url_field(value="{{row["item_url"]}}" ) }}

我收到此错误消息:

TemplateSyntaxError: expected token ',', got 'item_url'

是否可以在构建之前将字符串值自动传递给隐藏字段?

感谢您的反馈

【问题讨论】:

    标签: python flask jinja2 flask-wtforms


    【解决方案1】:
    @app.route
    def index():
        class someObj:
            def someFunc(someArg):
                return 10 + someArg
        return render_template("template.html", obj=someObj(), arg=25)
    
    -------------
    <div>
        {{ obj.someFunc(someArg=arg) }}
    </div>
    

    上面将在 HTML 中显示“35”。 一般来说,在大括号内时,您无需再次重写它们。 IE。 不要这样做

    {{ obj.someFunc(someArg={{ arg }}) }}
    

    您的错误是因为 jinja 2 认为您传递给 value 参数的值是“{{row[”,之后它需要一个逗号分隔符,而是收到了 item_url。

    {{ form.item_url_field(value="{{row["item_url"]}}" ) }}
    

    应该是

    {{ form.item_url_field(value=row['item_url']) }}
    

    (如果 row 确实是一个已注入模板范围的字典)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-20
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 2014-07-28
      • 1970-01-01
      • 2023-03-07
      • 2012-06-01
      相关资源
      最近更新 更多