Hi,

On Thu, Mar 18, 2010 at 4:52 AM, schinghu <[email protected]> wrote:

> Hi all,
>
> When I use app engine to develop a simple website, uploading image
> using html form, I met the following error:
> [template is used in my application]
>
> ----------------------------------------------------------------------------------------------------------------------------------------------
> Traceback (most recent call last):
>  File "/tools/google/google_appengine/google/appengine/ext/webapp/
> __init__.py", line 507, in __call__
>    handler.get(*groups)
>  File "/mnt/hgfs/share/cloud/app/netcoc/netcoc.py", line 53, in get
>    self.response.out.write(template.render(template_file,
> to_template_values))
>  File "/tools/google/google_appengine/google/appengine/ext/webapp/
> template.py", line 80, in render
>    t = load(template_path, debug)
>  File "/tools/google/google_appengine/google/appengine/ext/webapp/
> template.py", line 108, in load
>    template = django.template.loader.get_template(file_name)
>  File "/tools/google/google_appengine/lib/django/django/template/
> loader.py", line 80, in get_template
>    template = get_template_from_string(source, origin, template_name)
>  File "/tools/google/google_appengine/lib/django/django/template/
> loader.py", line 88, in get_template_from_string
>    return Template(source, origin, name)
>  File "/tools/google/google_appengine/lib/django/django/template/
> __init__.py", line 158, in __init__
>    self.nodelist = compile_string(template_string, origin)
>  File "/tools/google/google_appengine/lib/django/django/template/
> __init__.py", line 174, in compile_string
>    return parser.parse()
>  File "/tools/google/google_appengine/lib/django/django/template/
> __init__.py", line 273, in parse
>    compiled_result = compile_func(self, token)
>  File "/tools/google/google_appengine/lib/django/django/template/
> defaulttags.py", line 544, in do_for
>    nodelist_loop = parser.parse(('endfor',))
>  File "/tools/google/google_appengine/lib/django/django/template/
> __init__.py", line 254, in parse
>    filter_expression = self.compile_filter(token.contents)
>  File "/tools/google/google_appengine/lib/django/django/template/
> __init__.py", line 338, in compile_filter
>    return FilterExpression(token, self)
>  File "/tools/google/google_appengine/lib/django/django/template/
> __init__.py", line 558, in __init__
>    raise TemplateSyntaxError, "Could not parse the remainder: %s" %
> token[upto:]
> TemplateSyntaxError: Could not parse the remainder: ()
>
> ----------------------------------------------------------------------------------------------------------------------------------------------
>
>
> This is my Model:
>
> ----------------------------------------------------------------------------------------------------------------------------------------------
> class MsgTable(db.Model):
>    user    = db.UserProperty()
>    image   = db.BlobProperty()
>    content = db.StringProperty(multiline=True)
>    date    = db.DateTimeProperty(auto_now_add=True)
>
> ----------------------------------------------------------------------------------------------------------------------------------------------
>
>
> This is the data sent to template
>
> ----------------------------------------------------------------------------------------------------------------------------------------------
>        to_template_values = {
>            'MsgRs': MsgRs,
>            'url': url,
>            'url_txt': url_txt,
>        }
>        template_file = os.path.join(os.path.dirname(__file__),
> 'index.htm')
>        self.response.out.write(template.render(template_file,
> to_template_values))
>
> ----------------------------------------------------------------------------------------------------------------------------------------------
>
>
> This is the final part: index.htm and Image app:
>
> ----------------------------------------------------------------------------------------------------------------------------------------------
> <html>
> <head>
>    <link type="text/css" rel="stylesheet" href="/css/main.css" />
> </head>
> <body>
> {% for item in MsgRs %}
>    <img src="image?image_id={{ item.key() }}"></img>
>    {% if item.user %}
>        <b>{{ item.user.nickname }}</b> wrote:
>    {% else %}
>        An anonymous person wrote:
>    {% endif %}
>    <blockquote>{{ item.content|escape }}</blockquote>
> {% endfor %}
> <form action="/sign" method="post">
> <div><textarea name="content" rows="3" cols="60"></textarea></div>
> <div><input type="file" name="image"/></div>
> <div><input type="submit" value="Sign Guestbook"></div>
> </form>
> <a href="{{ url }}">{{ url_txt }}</a>
> </body>
> </html>
>
> ----------------------------------------------------------------------------------------------------------------------------------------------
> class Image (webapp.RequestHandler):
>    def get(self):
>        item = db.get(self.request.get("image_id"))
>        if item.image:
>            self.response.headers['Content-Type'] = "image/png"
>            self.response.out.write(item.image)
>        else:
>            self.response.out.write("No image")
>
> ----------------------------------------------------------------------------------------------------------------------------------------------
>
>
>
> If I delete this line:
> <img src="image?image_id={{ item.key() }}"></img>
> It's ok, but once I use this line to show the image, error come out as
> I just shown in above(first part of this mail)
>

You cannot call functions explicitly in Django templates. Instead, use
{{item.key}} - Django will automatically call the function and insert the
result.

-Nick Johnson


>
>
> Any help on this is definitely appreciated.
>
>
> Shiqing
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-appengine%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>


-- 
Nick Johnson, Developer Programs Engineer, App Engine
Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number:
368047

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to