首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在MongoEngine中实现双向关系

在MongoEngine中实现双向关系
EN

Stack Overflow用户
提问于 2010-10-08 04:09:33
回答 2查看 5.1K关注 0票数 23

我正在构建一个Django应用程序,它使用MongoDB和MongoEngine来存储数据。为了给出我的问题的一个简化版本,假设我想有两个类: User和Page。每个页面都应该与一个用户相关联,并且每个用户都应该与一个页面相关联。

代码语言:javascript
复制
from mongoengine import *

class Page(Document):
    pass

class User(Document):
    name = StringField()
    page = ReferenceField(Page)

class Page(Document):
    content = StringField()
    user = ReferenceField(User)

(请注意,必须在用户之前定义页面。如果我缺少一种处理循环依赖的Pythonic方法,请让我知道。)每个文档都可以很好地创建和保存,但是将页面分配给用户会抛出错误。

代码语言:javascript
复制
u = User(name='Jeff')
u.save()
p = Page(content="I'm a page!")
p.save()
p.user = u
p.save()
u.page = p
u.save()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "build\bdist.win32\egg\mongoengine\document.py", line 71, in save
  File "build\bdist.win32\egg\mongoengine\base.py", line 303, in validate
mongoengine.base.ValidationError: Invalid value for field of type "ReferenceField"

谁能解释一下为什么抛出这个异常,我做错了什么,以及如何避免它?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3885487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档