Anj*_*ana 7 google-app-engine app-engine-ndb
我正在尝试创建像学生和科目一样的ndb.Model类
class Subject(ndb.Model):
name = ndb.StringProperty()
class Student(ndb.Model):
name = ndb.StringProperty()
subject = ndb.KeyProperty(kind=Subject)
Run Code Online (Sandbox Code Playgroud)
一个学生可以有很多科目.如何在此模型中添加和存储这些内容.我找不到任何例子.对于String Property ..有字段属性,即repeat = true
如何实现这一点,并在网上有任何工作的例子.对不起,如果是重复的问题,但我尝试用我有限的技能来搜索这个论坛.
当我需要1对多时,我使用重复的keyProperties.码:
class Subject(ndb.Model):
name = ndb.StringProperty()
class Student(ndb.Model):
name = ndb.StringProperty()
subjects = ndb.KeyProperty(kind='Subject', repeated=True)
Run Code Online (Sandbox Code Playgroud)
模板:
{% for subject in student.subjects %}
{{subject.get().name}}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
ndb是nosql,因此您将找不到对子项中父项的引用.但是,您可以像这样添加它.创建新主题时,请不要忘记设置学生键值.
class Subject(ndb.Model):
name = ndb.StringProperty()
student = ndb.KeyProperty(kind='Student')
class Student(ndb.Model):
name = ndb.StringProperty()
subjects = ndb.KeyProperty(kind='Subject', repeated=True)
Run Code Online (Sandbox Code Playgroud)
使用主题作为关键。
me = Student(key_name='KurzedMetal')
programming = Subject(key_name='Programming')
programming.put()
me.subject = programming.key()
me.put()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4683 次 |
| 最近记录: |