Я учусь использовать Google App Engine / Python.(webapp)
Я пришел из Java (это может быть моей проблемой!), где, если я помещаю объекты в список Swing, это вызовет их метод toString () для целей отображения.Когда я выбрал один из них, он возвращал бы объект, а не только его представление, сгенерированное toString ().
У меня есть модель Person, которая содержит данные о людях:
class Person(db.Model):
'''represents a single person'''
first = db.StringProperty()
last = db.StringProperty()
address = db.StringProperty()
city = db.StringProperty()
region = db.StringProperty()
postal = db.StringProperty()
country = db.StringProperty()
phone = db.StringProperty()
cell = db.StringProperty()
email = db.StringProperty()
comment = db.StringProperty(multiline=True)
И модель резервирования, которая хранит информацию о комнате и хранит информацию о том, кому принадлежит человек с резервированием:
class Reservation(db.Model):
'''represents a single reservation'''
room = db.StringProperty()
start_day = db.IntegerProperty()
start_month = db.IntegerProperty()
start_year = db.IntegerProperty()
end_day = db.IntegerProperty()
end_month = db.IntegerProperty()
end_year = db.IntegerProperty()
percent_discount = db.IntegerProperty()
comment = db.StringProperty(multiline=True)
client = #what would go here?
Чтобы получить информацию о резервировании от пользователя и поместить резервирование в базу данных, у меня есть HTMLформа с различными полями, включая номера, дату прибытия, дату отъезда и т. д. Одно из них включает в себя «список клиентов», который получает список лиц, которые уже находятся в базе данных:
<select size="5" name="client_list">
{% for person in clients %}
<option>{{ person.first|escape }} {{ person.last|escape }}</option>
{% endfor %}
</select>
Это работает для отображенияимена, но тогда я не знаю, как сохранить выбранный «Персона» или клиента в резервировании в следующем коде:
class Bookings(webapp.RequestHandler):
'''Handles all of the bookings'''
def post(self):
'''adds a new booking into the db'''
reservation = models.Reservation()
reservation.room = self.request.get('room')
reservation.start_day = int(self.request.get('start_day'))
reservation.start_month = util.month_to_int(self.request.get('start_month'))
reservation.start_year = int(self.request.get('start_year'))
reservation.end_day = int(self.request.get('end_day'))
reservation.end_month = util.month_to_int(self.request.get('end_month'))
reservation.end_year = int(self.request.get('end_year'))
reservation.percent_discount = int(self.request.get('percent_discount'))
reservation.comment = self.request.get('comment')
#This would get the clients first + last name, but not the object Person
#reservation.client = self.request.get('client_list')
reservation.put()
self.redirect('/bookings')
Я начал смотреть на ключи (в частности, db.Key.from_path), и как каждый человек, созданный в GAE, генерирует уникальный идентификатор, но тогда я все еще не знаю, как получить этот уникальный идентификатор, назначенный человекуиз списка, отображаемого в HTML, если отображается только имя человека.
Это кажется чем-то возможным и, возможно, простым, но после двух дней поиска я ничего не нашел.Дайте мне знать, если я должен предоставить больше информации, это мой первый пост здесь, в переполнении стека!Спасибо за любой совет.