我的表单验证工作接近完成,我只有2个案例我不知道如何解决:1)当然应该要求密码字段,但我也提供了通过OAuth登录谷歌或Facebook帐户的可能性然后名称被预先填充但我从表单中完全删除密码字段是有用户(谷歌)或Facebook用户对象:
<tr><td>
<br /> {% if user or current_user %} {% else %}
<div class="labelform">
{% filter capitalize %}{% trans %}password{% endtrans %}{% endfilter %}:
</div>
</td><td> <div class="adinput">{{ form.password|safe }}{% trans %}Choose a password{% endtrans %}</div>{% endif %}
</td></tr>
Run Code Online (Sandbox Code Playgroud)
因此,对于已经登录且密码字段没有意义的用户,我需要一些逻辑来使该字段有条件地可选.我在想我可以为我的表单类中的logged_in +方法创建一个变量,例如:
class AdForm(Form):
logged_in = False
my_choices = [('1', _('VEHICLES')), ('2', _('Cars')), ('3', _('Bicycles'))]
name = TextField(_('Name'), [validators.Required(message=_('Name is required'))], widget=MyTextInput())
title = TextField(_('title'), [validators.Required(message=_('Subject is required'))], widget=MyTextInput())
text = TextAreaField(_('Text'),[validators.Required(message=_('Text is required'))], widget=MyTextArea())
phonenumber = TextField(_('Phone number'))
phoneview …
Run Code Online (Sandbox Code Playgroud)