Hi, You have defined latitude and longitude as StringListProperty and are passing it a string as opposed to a list, either change the field type i.e. use GeoPt http://code.google.com/appengine/docs/python/datastore/typesandpropertyclasses.html#GeoPt or pass in a list location.latitude.append(self.request.get('latitude') )
S. Sriram On Apr 21, 5:42 am, shreevaishnav <sagarshreevaish...@gmail.com> wrote: > 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 -~----------~----~----~----~------~----~------~--~---