有关于如何set的帖子, get , KeyProperty/StructuredProperty ,但没有任何内容告诉我如何使用 NDB 进行多对一建模。
我有两个模型:
class Department(ndb.Model):
department_id = ndb.IntegerProperty()
name = ndb.StringProperty()
class Student(ndb.Model):
student_id = ndb.IntegerProperty()
name = ndb.StringProperty()
dept = ndb.KeyProperty(Kind=Department)
如何确保多对一,即每当插入学生记录时,它必须验证部门 key w.r.t 到部门数据存储?
如何插入学生记录以确保多对一关系?
选项 1:
# Insert student record without checking for valid dept id. GAE automatically validates
student = Student(student_id=...., dept=ndb.Key(Department, input_dept_id))
选项 2:
# check for valid dept id and then insert student record
dept_key = ndb.Key(Department, input_dept_id)
if(dept_key.get()):
student = Student(student_id=...., dept=dept_key)
我尝试了选项 1,其中 dept_id 不在部门实体中,它能够插入该学生实体。我对 GAE 还很陌生。
我是一名优秀的程序员,十分优秀!