【发布时间】:2015-02-28 15:17:04
【问题描述】:
我正在尝试创建一个管理页面,在该页面中我可以使用 MonogDB 和 Flask-Admin 编辑用户属于哪些角色。
models.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))
admin.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 视图中选择用户角色并单击保存时,显示以下表单验证错误:'54a72849426c702850d01922' is not a valid selection for this field
编辑/更新 ReferenceField 的正确方法是什么?
【问题讨论】:
标签: python mongodb flask-admin