これは些細なことですが、Pythonにとってはかなり新しいと思います。
GoogleAppEngineを使用してモデルを作成しようとしています。
基本的にE/Rの観点から、結合テーブルを持つ2つのオブジェクトがあります(結合テーブルは結合の時点をキャプチャします)このようなもの
Person | Idea | Person_Idea
-------------------------------
person.key idea.key person.key
idea.key
date_of_idea
私のPythonコードは次のようになります
class Person (db.Model):
#some properties here....
class Idea(db.Model):
#some properties here....
class IdeaCreated(db.Model):
person= db.ReferenceProperty(Person)
idea= db.ReferenceProperty(Idea)
created = db.DateTimeProperty(auto_now_add = True)
私ができるようにしたいのは、人が持っているすべてのアイデアを取得するための便利な方法を用意することです(アイデアで作成されたオブジェクトをバイパスします)。アイデアのリストが直接必要になる場合もあります。
これを行うために私が考えることができる唯一の方法は、Userクラスにfollowメソッドを追加することです
def allIdeas(self):
ideas = []
for ideacreated in self.ideacreated_set:
ideas.append(ideacreated.idea)
return ideas
これを行う唯一の方法ですか?私が行方不明になっているより良い方法はありますか?
また、GQLを使用して、ideaCreatedインスタンスのハイドレイティングをバイパスできると仮定しますが(正確な構文はわかりません)、GQLクエリを配置するのは私には悪臭がします。