2017-03-03 3 views
1

を2つのエンティティを渡します。PythonのAppEngineの - 私はビュー-相談するページがあり、要求ハンドラがある神社テンプレートビューに

class ViewConsultPage(webapp2.RequestHandler): 
    def get(self): 
     consult = ndb.Key(urlsafe=self.request.get('key')).get() 
     template = JINJA_ENVIRONMENT.get_template('/templates/view-consult.html') 
     template_values = { 
     'consult': consult 
     } 
     self.response.out.write(template.render(template_values)) 

それは相談に関する情報を表示します次に、相談と同じIDで評価が作成されます。私は同じページに相談と評価に関する情報を表示したいと思います。私はと類似ハンドラに評価に加えると仮定

相談:

class ViewConsultPage(webapp2.RequestHandler): 
    def get(self): 
     consult = ndb.Key(urlsafe=self.request.get('key')).get() 
     assessment = ndb.Key(urlsafe=self.request.get('key')).get() 
     template = JINJA_ENVIRONMENT.get_template('/templates/view-consult.html') 
     template_values = { 
     'consult': consult, 
     'assessment': assessment 
     } 
     self.response.out.write(template.render(template_values)) 

は私が相談する性質が以前のようにレンダリングされているビュー・相談ページをロードするが、ときに評価特性、例えば{{ assessment.assess_notes}}は空の文字列として(または何も)印刷しません。

答えて

1

consultassessmentは同じキーIDを共有しますが、同じキーとurlsafe文字列を共有しないため、エンティティを取得するのと同じ方法を使用することはできません。

エンティティassessmentは、両方のエンティティのキ​​ーIDで同一のエンティティを取得できます。だから私はのような最初の2行を次のように書き直したいと思います。

consult_key = ndb.Key(urlsafe=self.request.get('key')) 
consult = consult_key.get() 
# assessment and consult have the same key ID 
assessment = Assesment.get_by_id(consult_key.id()) 
+0

これはうまくいきました。 :) – TimothyAURA

関連する問題