Hi, I want to append a value to the list in the database,dynamically from a html form , one value at each time in such a way that the new value is appended to the old one in the list and display on the web page in the database.How to link multiple entities in the datastore.How to make an attribute in an entity as unique. Please help me.
I have the following code as below: import cgi 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 Route(db.Model): routenumber = db.StringProperty(unique=True )--->unique could not be used.... routename = db.StringProperty() date = db.DateTimeProperty(auto_now_add=True) class Location(db.Model): reference = db.ReferenceProperty(Route) latitude = db.StringListProperty() longitude = db.StringListProperty() landmarkname = db.StringListProperty() date = db.DateTimeProperty(auto_now_add=True) class Current(db.Model): reference = db.ReferenceProperty(Route) currentlat = db.StringListProperty() currentlong = db.StringListProperty() date = db.DateTimeProperty(auto_now_add=True) class MainPage(webapp.RequestHandler): def get(self): self.response.out.write('<html><body><table border=1><tr><th>Routenumber</th><th>Routename</th></tr>') routes = db.GqlQuery("SELECT * FROM Route") for route in routes: self.response.out.write('<tr><td><blockquote>%s</blockquote></td>' % cgi.escape(route.routenumber)) self.response.out.write('<td><blockquote>%s</blockquote></td></tr>' % cgi.escape(route.routename)) self.response.out.write('</table></body></html>') self.response.out.write('<html><body><table border=1><tr><th>Latitude</th><th>Longitude</th><th>Landmarkname</th></ tr>') locations = db.GqlQuery("SELECT * FROM Location") for location in locations: #self.response.out.write('<tr><td><blockquote>%s</blockquote></td>' % # cgi.escape(route.routenumber)) self.response.out.write('<tr><td><blockquote>%s</blockquote></td>' % cgi.escape(location.latitude)) self.response.out.write('<td><blockquote>%s</blockquote></td>' % cgi.escape(location.longitude)) self.response.out.write('<td><blockquote>%s</blockquote></td></ tr>' % cgi.escape(location.landmarkname)) self.response.out.write('</table></body></html>') self.response.out.write('<html><body><table border=1><tr><th>CurrentLatitude</th><th>CurrentLongitude</th></ tr>') currents = db.GqlQuery("SELECT * FROM Current") for current in currents: #self.response.out.write('<tr><td><blockquote>%s</blockquote></td>' % #cgi.escape(route.routenumber)) self.response.out.write('<tr><td><blockquote>%s</blockquote></td>' % cgi.escape(current.currentlat)) self.response.out.write('<td><blockquote>%s</blockquote></td></ tr>' % cgi.escape(current.currentlong)) self.response.out.write('</table></body></html>') self.response.out.write("""<html><body> <form action="/sign" method="post"> Routenumber :<input type="text" name="routenumber" size=20><br> Routename :<input type="text" name="routename" size=20><br> Latitude :<input type="text" name="latitude" size=20><br> Longitude :<input type="text" name="longitude" size=20><br> Landmarkname:<input type="text" name="landmarkname" size=20><br> Currentlat :<input type="text" name="currentlat" size=20><br> Currentlong :<input type="text" name="currentlong" size=20><br> <input type="submit" value="Send"> </form> </body> </html>""") class Guestbook(webapp.RequestHandler): def post(self): route = Route() route.routenumber = self.request.get('routenumber') route.routename = self.request.get('routename') route.put() location = Location() location.latitude = self.request.get('latitude') location.longitude = self.request.get('longitude') location.landmarkname = self.request.get('landmarkname') location.put() current = Current() current.currentlat = self.request.get('currentlat') current.currentlong = self.request.get('currentlong') current.put() self.redirect('/') application = webapp.WSGIApplication([('/', MainPage),('/sign', Guestbook)],debug=True) def main(): run_wsgi_app(application) if __name__ == "__main__": main()Traceback (most recent call last): File "C:\Program Files\Google\google_appengine\google\appengine\ext \webapp\__init__.py", line 498, in __call__ handler.get(*groups) File "C:\Program Files\Google\google_appengine\aitdatabase \database.py", line 44, in get for location in locations: File "C:\Program Files\Google\google_appengine\google\appengine\ext \db\__init__.py", line 1468, in next return self.__model_class.from_entity(self.__iterator.next()) File "C:\Program Files\Google\google_appengine\google\appengine\ext \db\__init__.py", line 997, in from_entity instance = cls(None, _from_entity=True, **entity_values) File "C:\Program Files\Google\google_appengine\google\appengine\ext \db\__init__.py", line 596, in __init__ prop.__set__(self, value) File "C:\Program Files\Google\google_appengine\google\appengine\ext \db\__init__.py", line 396, in __set__ value = self.validate(value) File "C:\Program Files\Google\google_appengine\google\appengine\ext \db\__init__.py", line 2386, in validate raise BadValueError('Property %s must be a list' % self.name) BadValueError: Property latitude must be a list Please do help me in achieving the task..... with regards, shreevaishnav This program is giving the following errors:::: --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~----------~----~----~----~------~----~------~--~---