我正在尝试创建一个管理页面,我可以从中编辑用户是使用 MonogDB 和 Flask-Admin 成员的角色。
模型.py
class Role(db.Document, RoleMixin):
name = db.StringField(max_length=80, unique=True)
description = db.StringField(max_length=255)
def __unicode__(self):
return self.name
class User(db.Document, UserMixin):
email = db.StringField(max_length=255)
password = db.StringField(max_length=255)
roles = db.ListField(db.ReferenceField(Role))
管理员.py
class UserView(ModelView):
from wtforms.fields import SelectMultipleField
from bson import ObjectId, DBRef
form_overrides = dict(roles=SelectMultipleField)
options = [(g.id, g.name) for g in models.Role.objects()]
# print options
# [(ObjectId('54a72849426c702850d01921'), u'community'),
# (ObjectId('54a72849426c702850d01922'), u'customer')]
form_args = dict(roles=dict(choices=options))
当我在 Flask-Admin edit_form 视图中选择用户角色并 cilck 保存时,显示以下表单验证错误:“54a72849426c702850d01922”不是此字段的有效选择
编辑/更新 ReferenceField 的正确方法是什么?