我正在尝试生成一系列表单,每个表单都包含隐藏字段中的特定值。
以下是我的查看器模板的代码:
<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'
是否有可能在构建隐藏字段之前自动将字符串值传递给隐藏字段?
感谢您的反馈
答案 0 :(得分: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”。 通常,当在花括号内时,您不需要再次重写它们。即不要这样做:
{{ 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是已经注入模板范围的dict)