【发布时间】:2011-05-14 17:54:35
【问题描述】:
我正在编写一个具有多对多关系的数据模型的 Google App Engine 应用程序。我想我做错了。我的数据模型类定义是:
class Project(db.Model):
name = db.StringProperty()
description = db.TextProperty()
admin = db.ReferenceProperty(Appuser)
website = db.LinkProperty()
members = db.ListProperty(db.key, default=None)
start_date = db.DateTimeProperty(auto_add_now = True)
class Appuser(db.Model):
user_id = db.UserProperty()
fullname = db.StringProperty()
website = db.LinkProperty()
involved_projects = db.ListProperty(db.key, default=None)
current_project = db.ReferenceProperty(Project)
现在,每当我尝试运行它时,我都会在文件中收到一条错误消息,指出 Appuser is not defined。这是因为Appuser 类是在Project 之后定义的。我无法更改顺序,因为类Appuser 也有一个类Project 的ReferenceProperty 我会得到一个未定义的Project 错误。现在如何正确实现它。
【问题讨论】:
-
SO 之前对此有过一些疑问:http://stackoverflow.com/questions/4347671/,Nick 在他的博客上解释了 2 个策略:a join table or a list of keys。
-
您的标题暗示您在询问多对多关系,但实际问题似乎与循环引用有关。
-
@Nick:坦率地说,我不知道有一种叫做循环引用的东西。
标签: python google-app-engine web-applications