0

プロジェクトで問題が発生しています。私は2つのモデルを持っています

class UserPrefs(db.Model):
    user = db.UserProperty()
    name = db.StringProperty()

class Person(db.Model):
    name = db.StringProperty()
    phone = db.PhoneNumberProperty()
    userPrefs = db.ReferenceProperty(UserPrefs)

class PersonHandler(webapp.RequestHandler): 
    def get(self): 
        users.get_current_user user = () 
        if user: 
            greeting = ...... 
        else: 
            greeting = ......

        if self.request.GET.has_key ('id'): 
            id = int (self.request.get ['id']) 
            person = models.Person.get = (db.Key.from_path ('Person', id)) 

            path = os.path.join (os.path.dirname (__file__), 'templates / doStuff.html') 
            self.response.out.write (template.render (path, locals (), debug = True)) 

        def post (self): 
            if self.request.get ('Person'): 
                id = int (self.request.get ('Person')) 
                person = models.Person.get (db.Key.from_path ('Person', id)) 
            else: 
                person= models.Person = () 

            data = forms.PersonForm date = (data = self.request.POST) 
            if data.is_valid (): 
                if self.request.get ('photo'): 
                    Person.foto db.Blob = (self.request.get ('photo')) 

                person.nome self.request.get = ('name') 
                person.apelido self.request.get = ('name') 
                person.unidade self.request.get = ('unit') 

                person.put () 
                self.redirect ('/ doSomeStuff') 
            else: 
                self.redirect ('doOtherStuff')

To See the data in database i use this handler:
class SeePersonHandler (webapp.RequestHandler): 
    def get (self): 
        users.get_current_user user = () 
        if user: 
            greeting = ...... 
        else: 
            greeting = ......

        person= db.Query(models.Pocente)
        persons = person.fetch(limit = 1) 

        path = os.path.join(os.path.dirname(__file__), 'templates/SeeStuff.html')
        self.response.out.write(template.render(path, locals(), debug = True))

質問: データが正しく配置されていることは知っています。この URL で SDK コンソールを使用しました: http://localhost:8080/_ah/admin/datastoreエンティティは正しく作成されます。すでに入れられたデータを取得するために何が欠けているのかわかりません

私のテンプレート:

{% if user %}
  {% if person%}
    <table align="center">
    <tbody>
    <tr>
      <td><input type="button" value="Criar Pessoa" onclick="redirect(3)" /></td>
    </tr>
    </tbody>
    </table>
    <table align="center">
    <tbody>
    <tr>
      <td colspan="2"><center><strong><p>O meu Curriculum Vitae</p></strong></center></td>
    </tr>
    <tr>
      <td>Nome: </td>
      <td>{{ person.name}}</td>
    </tr>
    <tr>
      <td>Apelido: </td>
      <td>{{ person.phone}}</td>
    </tr>
    <tr>
      <td></td>
      <td>
        <input type ="button" value="Editar" onclick="editarCv({{ person.key.id }})" />
      </td>
    </tr>
    </tbody>
    </table>
  {% endif %}
{% endif %}
4

1 に答える 1

0

あなたのコードは少しまとまりがありません。
一般に、コードを整理すると、デバッグが容易になります。

とにかく、トラッシュトークはもう十分だ。データストア クエリの結果を...
に割り当てています。persons

persons = person.fetch(limit = 1)

...しかし、テンプレートで次を使用しますperson

<tr>
  <td>Nome: </td>
  <td>{{ person.name}}</td>
</tr>
<tr>
  <td>Apelido: </td>
  <td>{{ person.phone}}</td>
</tr>

これが唯一の問題であるかどうかを判断するのは困難ですが (私は非常に疑わしいと思います)、おそらくそれを修正して、私たちに戻ってくることができます. 幸運を祈ります。

余談:代わりに、ドキュメントに記載されているように.fetch(limit=1)単純に使用できます:.get()

get() は 1 の「制限」を暗示します。最大で 1 つの結果がデータストアからフェッチされます。

于 2010-09-17T01:36:43.657 に答える