当我尝试在models.py中的两个类上添加KeyProperty时遇到问题
class Task(ndb.Model):
name = ndb.StringProperty(required=True)
project = ndb.KeyProperty(kind=Project, repeated=True)
description = ndb.TextProperty(required=True)
task_state = ndb.StringProperty(required=True)
class Project(ndb.Model):
name = ndb.StringProperty(required=True)
description = ndb.StringProperty(required=True)
project_state = ndb.StringProperty(required=True)
tasks = ndb.StructuredProperty(kind=Task, repeated=True)
我收到以下错误:
project = ndb.KeyProperty(kind=Project, repeated=True)
NameError: name 'Project' is not defined
从这里的一个先前的答案,我已经尝试切换顺序,但后来我只是将另一个类作为错误日志中的错误原因。最初是
ndb.KeyProperty(kind=Task, repeated=True)
但谷歌搜索后我尝试了结构化属性。
目标是让任务连接到特定项目,当我查询某个项目时,我可以列出与之关联的任务,但是当我点击任务时,我可以看到它是为特定任务列出的。
答案 0 :(得分:0)
您需要首先使用实体的类型作为字符串,为您首先定义的模型(代码中的任务):
class Task(ndb.Model):
name = ndb.StringProperty(required=True)
project = ndb.KeyProperty(kind='Project', repeated=True)
description = ndb.TextProperty(required=True)
task_state = ndb.StringProperty(required=True)