GAE中数据库列表的值为其他实体的方法

This item was filled under [ 易懂python ]

处理Tag(标签)和Diary(日志)时出现了问题,因为GAE并没有多对多关联,经过查询资料,可以有一种很简单的办法是在关系的其中一方创建一个的列表,如下:

class Tag(db.Model):
name = db.StringProperty( required = True )
diaries = db.ListProperty(db.Key)

class Diary(db.Model):
title = db.StringProperty( required = True )
content = db.TextProperty()
category = db.ReferenceProperty(Category)

@property
def tags(self):
return Tag.gql(“WHERE diaries = :1″, self.key())

在一篇日志(Diary)贴上标签(Tag)用如下办法即可:tag.diaries.append(diary.key())

获取一篇日志(Diary)的标签(Tag)用diary.tags()即可

这样就比较简单的实现了多对多的关联

欢迎交流:ljy080829@gmail.com

Bookmark and Share
Tagged with: [ , , ]