所以我使用 MongoEngine、Flask 和 WTForms 组合了一个简单的网络应用程序,我得到了一个如下所示的用户模型:
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)创建一个表单,然后在模板中呈现它时,密码属性上的 DateTimeField 和 StringField() 都呈现为简单的文本输入字段。
我如何让它们呈现为日历小部件(就像 Django 所做的那样)和一个实际上隐藏密码的密码字段,而无需自定义编写我自己的表单?
最佳答案
这有点老了,但在寻找这个问题时它在谷歌上的排名也很高。
我深入研究了 flask-MongoEngine 库(特别是 here )并找到了执行此操作的方法。有一个选项可以传入“field_args”字典,帮助修改字段从模型中生成的方式。
我遇到了完全相同的问题,但是像这样使用 model_form 是可行的:
form_cls = model_form(User, only=['username', 'password'], field_args={'password': {'password':True}})
如果您深入了解该链接中的文件,还有一些其他字段也可以更改。
关于python - Flask、MongoEngine、Wtforms - 正确呈现密码字段和日期时间字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22867713/