因此,我使用MongoEngine,Flask和WTForms组合了一个简单的Web应用程序,并且得到了一个如下用户模型:

class User(db.document):
    username = db.StringField(max_length=64)
    password = db.StringField(max_length=64)
    date_joined = db.DateTimeField(default=datetime.datetime.now)


现在,当我使用MongoEngine的model_form()(来自flask.ext.mongoengine.wtf)创建表单,然后将其呈现在模板中时,password属性上的DateTimeField和StringField()似乎都呈现为简单文本输入领域。

如何使它们呈现为日历小部件(如Django)和实际上隐藏密码而不需要自定义编写自己的表单的密码字段?

最佳答案

这有点旧,但是在寻找此问题时,它在Google上也很重要。

我已经研究了flask-MongoEngine库(特别是here),并找到了一种方法。有一个选项可以传递“ field_args”字典,该字典可以帮助修改从模型生成字段的方式。

我遇到了完全相同的问题,但是像这样使用model_form起作用:

form_cls = model_form(User, only=['username', 'password'], field_args={'password': {'password':True}})


如果您在该链接中挖掘文件,那么还有一些其他字段也可以更改。

关于python - Flask,MongoEngine,Wtforms-正确呈现passwordfield和datetime字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22867713/

10-11 20:19