【问题标题】:Ancestor Query not displaying results祖先查询不显示结果
【发布时间】:2023-03-03 12:18:01
【问题描述】:

我无法让我的ancestor queries 显示与存储在数据存储中的Tom's 照片关联的链接。即使数据存储中有多个链接,数据存储也不会显示任何内容。任何帮助将不胜感激。提前致谢。

ma​​in.py

import webapp2
import jinja2
import os

from google.appengine.ext import db

jinja_environment = jinja2.Environment(
    loader=jinja2.FileSystemLoader(os.path.dirname(__file__)))

class MainPage(webapp2.RequestHandler):
    def get(self):          

        tom = Person(key_name='Tom')

        wedding_photo = Photo(parent=tom)
        wedding_photo.image_url='http://pinterest.com/pin/200691727117011230/'
        wedding_photo.put()

        baby_photo = Photo(parent=tom)
        baby_photo.image_url='http://pinterest.com/pin/518828819542052681/'
        baby_photo.put()

        dance_photo = Photo(parent=tom)
        dance_photo.image_url='http://pinterest.com/pin/257197828689352707/'
        dance_photo.put()

        dog_photo = Photo()
        dog_photo.image_url='http://pinterest.com/pin/279575089339614779/'
        dog_photo.put()


        photo_query = Photo.all()
        photo_query.ancestor(tom)

        message = "Photos"

        template_values = {
            'message': message,
            'photo_query': photo_query,     
        }       

        template = jinja_environment.get_template('index.html')
        self.response.out.write(template.render(template_values))


class PhotoStore(webapp2.RequestHandler):
    def post(self):
        photo = Photo()
        photo.image_url = self.request.get('image_url')     
        photo.put() 
        self.redirect('/')      


class Person(db.Model):
    name = db.StringProperty()


class Photo(db.Model):
    image_url = db.StringProperty()

app = webapp2.WSGIApplication([('/', MainPage),
                                ('/new_photo',PhotoStore)], debug=True)

index.html

<html>
    <body>                      
        <form action="/new_photo" method="post">            
            <label for="photo">Photo</label>
            <div><textarea name="image_url" rows="1" cols="60" id="image_url"></textarea></div>         
            <input type="submit" value="Submit">
        </form>
        <hr></hr>
        <div><b>{{ message }}</b></div>             
        <b>{% for p in photo_query.run(limit=5): %}</b>
        <div>{{ p }}</div>
        <b>{% endfor %}</b>
    </body>
</html>

【问题讨论】:

    标签: python google-app-engine python-2.7 google-cloud-datastore jinja2


    【解决方案1】:

    如果你打开生成的 html 源代码,你会看到什么?我假设代码{{ p }} 只显示Photo 对象的字符串表示形式,这会导致显示像&lt;__main__.Photo object at 0xfcbd9ef0&gt; 这样的字符串,它被解释为HTML 标记并且不会显示在呈现的HTML 中。

    【讨论】:

    • +1 感谢您的回复。 {{ p }} 什么都不显示,没有链接。
    • 哦,我现在在查看页面源代码时看到了。如何让它显示?
    • 哇,我不敢相信我犯了这个错误。 {{ p.image_url }} 解决了这个问题。谢谢!
    猜你喜欢
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    • 1970-01-01
    相关资源
    最近更新 更多