如何在Google App Engine中定义具有多对多关系的模型?

时间:2011-05-14 17:54:36

标签: python google-app-engine web-applications

我正在编写一个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也有一个ReferenceProperty到类Project我会得到一个未定义的Project错误。现在如何正确实现这一点。

1 个答案:

答案 0 :(得分:2)

循环引用问题的快速修复是在Project中定义admin时删除referance_class(实际上不需要验证)。

class Project(db.Model):
    admin = db.ReferenceProperty()

这不是理想的,但应解决问题。