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
-~----------~----~----~----~------~----~------~--~---

Reply via email to