首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用烧瓶jinja2模板比较操作符误差

用烧瓶jinja2模板比较操作符误差
EN

Stack Overflow用户
提问于 2016-02-26 18:24:30
回答 1查看 1.4K关注 0票数 0

我正在跟踪Displaying jinja2 form fields based on attribute value。我正在使用烧瓶和jinja2模板

我的表单类看起来如下:

代码语言:javascript
复制
class RegisterForm(Form):
    username = StringField('Username', validators=[DataRequired(), Length(min=3, max=25)])
    email = StringField('Email', validators=[DataRequired(), Email(), Length(min=6, max=40)])
    password = PasswordField('Password', validators=[DataRequired(), Length(min=6, max=40)])

我有一个jinja2表单模板,如下所示:

代码语言:javascript
复制
{% from "macros.html" import render_field  %}
<div class="container-narrow">
<h1>Register</h1>
<br/>
<form id="registerForm" class="form form-register" method="POST" action="" role="form">
        {{ form.hidden_tag() }}
        {% for field in form %}
            {% print(field.label != 'Email')%}
            {% print(field.label)%}
            {% print(field.name)%}
            {% if field.label!='Email' or email=='False' %}
                {{ render_field(field) }}
            {% endif %}
        {% endfor %}
        <p><input class="btn btn-default btn-submit" type="submit" value="Register"></p>
</form>
{% endblock %}

和一个jinja2宏,它看起来像:

代码语言:javascript
复制
{% macro render_field(field)%}

<div class="form-group">
{#                {{field.label}}#}
                {{field(placeholder=field.label.text, class_="form-control")}}
</div>

{% endmacro %}

您可以在屏幕截图中看到输出。我不明白为什么:

代码语言:javascript
复制
{% print(field.label != 'Email')%}

是否为电子邮件字段的True

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-26 18:49:40

代码中的问题是field.label返回的是Label,而不是字符串。因此,您的比较总是得到True (这是正确的)。

我的代码中有类似的电子邮件表单,下面是一个示例:

代码语言:javascript
复制
(Pdb++) form.email.label
Label('email', u'Email')
(Pdb++) form.email.label != 'email'
True
(Pdb++) form.email.label != 'Email'
True
(Pdb++) type(form.email.label)
<class 'wtforms.fields.core.Label'>
(Pdb++) form.email.label.text
u'Email'
(Pdb++) form.email.label.field_id
'email'
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35659015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档