I'm trying to retrieve a list of saved Message objects stored in the DataStore. I'm getting this error:
Traceback (most recent call last):
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\webapp__init__.py", line 515, in call handler.get(*groups) File "C:\Users\Sergio\Downloads\python-test\python-test\gae_test\handlers.py", line 23, in get messages = data.get_messages() File "C:\Users\Sergio\Downloads\python-test\python-test\gae_test\data.py", line 12, in get_messages dbMessage = db.GqlQuery("SELECT * FROM Message ORDER BY author DESC")
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\db__init__.py", line 2296, in init model_class = class_for_kind(self._proto_query._entity) File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\db__init__.py", line 266, in class_for_kind raise KindError('No implementation for kind \'%s\'' % kind) KindError: No implementation for kind 'Message'
Maybe someone with experience can explain what that exception means exactly.
Here's my code:
class MainHandler(BaseHandler):
def get(self):
messages = data.get_messages()
return self.render('index.html', messages=messages)
#This is in data.py
from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext import db
class Message(object):
def __init__(self, body, author, email, phone):
self.body = body
self.author = author
self.email = email
self.phone = phone
def get_messages():
#TODO: Implement
dbMessage = db.GqlQuery("SELECT * FROM Message ORDER BY author DESC")
messages = []
for message in dbMessages:
messages.append(message)
return messages
#return [
# Message('Hey, how are you doing?', 'Joel Hodgson', '[email protected]', '847-555-1020'),
# Message('Hey there! Love the website.', 'Brian Gordy', '[email protected]', None),
# Message('What is this?', 'Linda Bleeker', None, '415-555-5555'),
#]
#This is in Index.html:
{% extends "base.html" %}
{% block title %}Messages{% endblock %}
{% block content %}
<h2>Leave a new message</h2>
{% include "create.html" %}
<h2>Existing Messages</h2>
<div id="list">
{% include "list.html" %}
</div>
{% endblock %}
#And this in list.html
<ul id="messages">
{% for message in messages %}
<li>
{{ message.author }}: "{{ message.body }}"
<span class="contact-info">{{ message.phone }} • {{ message.email }}</span>
</li>
{% endfor %}
</ul>
What am I doing wrong?
Thank you!