【发布时间】:2014-08-11 00:31:49
【问题描述】:
我遇到了 mongoengine 和 wtforms 的连接问题。
我尝试使用Role class 将权限赋予User class,但我无法将Role class 外键赋予User class
这是我的代码:
# On class File
from mongoengine import Document, StringField, ReferenceField
class User(Document):
username = StringField(unique=True)
password = StringField()
role = RefrenceField(Role, default=Role.objects.get(num=3))
class Role(Document):
num = IntField()
name = StringField()
# On form File
from wtforms import Form, StringField, SelectField
class UserEditForm(Form):
username = StringField(u'Username', [validators.required()]
role = SelectField(u'Role', [validators.required()], choices=[(r.id, r.name) for r in Role.objects])
保存时,我收到此错误消息:
ValidationError: ValidationError (User:53a14fb0cdc4674abf452f2d) (A ReferenceField only accepts DBRef or documents: ['role'])
我尝试将r.id 替换为r 和r._object_key(),但没有结果
谢谢,
【问题讨论】:
标签: python flask mongoengine flask-wtforms flask-mongoengine