1

データストア内のコンサルテーションを一覧表示するコンサルタントページがあります。リストループは、このようなものです:私は、それぞれがリストにして行くためのリンクやビューを参照してください作る方法の背後にある基本的な考え方を知りたいリストからのエンティティへのリンク

class ConsultsPage(webapp2.RequestHandler): 
    def get(self): 
     consults = Consults.query().fetch(5) 
     consults_dic = {"consults" : consults} 
     template = JINJA_ENVIRONMENT.get_template('/templates/consults.html') 
     self.response.out.write(template.render(**consults_dic)) 

{% for consult in consults %} 
<tr> 
    <td><a href="consults/#">{{ consult.consult_date }}</a></td> 
    <td>{{ consult.consult_time }}</td> 
    <td>{{ consult.patient_first }}</td> 
    <td>{{ consult.patient_last }}</td> 
    <td><span class="badge badge-warning">{{ consult.consult_status }}</span></td> 
</tr> 
{%endfor%} 

ハンドラこのようなものですその特定の相談に関する情報

エンティティを取得するためにキーを使用する必要があるが、残りのプロセスは不明です。 (相談が記載されています)私のConsultsPageに

url = '/display_consult?key=%s' % consults.key.urlsafe() 

編集 私はラインを追加しています。ハンドラは次のようになります。

class ConsultsPage(webapp2.RequestHandler): 
    def get(self): 
     consults = Consults.query().fetch(5) 
     consults_dic = {"consults" : consults} 
     url = '/display_consult?key=%s' % consults.key.urlsafe() 
     template = JINJA_ENVIRONMENT.get_template('/templates/consults.html') 
     self.response.out.write(template.render(**consults_dic)) 

は、しかし、私はこのエラーを取得する:

また
url = '/display_consult?key=%s' % consults.key.urlsafe() 
AttributeError: 'list' object has no attribute 'key' 

私が相談を示しています、私のループ内のリンクのhrefに入れていますか? Retrieving Entities from Keysから

href="consults/{{ url }}" 
+0

あなたが ''ごとに)( 'key.urlsafeを呼びたいですコンサルタントではなく、もちろんコンサルタントのためのコンサルティングではありません。テンプレート言語に応じて、テンプレート内で呼び出すことさえできるかもしれません。 –

+0

http://stackoverflow.com/a/42423466/4495081を参照してください。 –

+0

私は相談に変更してエラーを受け取りました。NameError:グローバル名 'consult'は定義されていません。はい、それぞれのリンクが必要です。 – TimothyAURA

答えて

2

:それはのようなものです

You can also use an entity's key to obtain an encoded string suitable for embedding in a URL:

url_string = sandy_key.urlsafe() 

This produces a result like agVoZWxsb3IPCxIHQWNjb3VudBiZiwIM which can later be used to reconstruct the key and retrieve the original entity:

sandy_key = ndb.Key(urlsafe=url_string) 
sandy = sandy_key.get() 

したがって、各consultエンティティのために、あなたがそのエンティティに関する情報を表示したい一意のURLを取得することができます。

url = '/display_consult?key=%s' % consult.key.urlsafe() 

そして/display_consultページハンドラに次のようなエンティティを取得したい::URLパラメータを使用して、例えば

consult = ndb.Key(urlsafe=request.get('key')).get() 
+0

追加情報 – TimothyAURA

関連する問題