формат представления в базе данных web2py
db.define_table ("человек", поля ("имя"), формат='%(имя)с')
что здесь делает этот формат?
1 ответов
на format
аргумент используется для определения того, как будут отображаться поля в других таблицах, ссылающихся на таблицу "person". Например, если вы определяете:
db.define_table('dog',
Field('name'),
Field('owner', db.person)
поле "владелец" является ссылочным полем, которое ссылается на таблицу "лицо" (т. е. хранит идентификаторы записей из таблицы "лицо"). В большинстве случаев при отображении данных из таблицы "собака" вы не хотите отображать необработанную БД.идентификатор записи лица, который хранится в поле "Владелец", поскольку это не имейте какой-либо смысл-вместо этого имеет смысл отображать " имя " человека. В web2py, в format
атрибут таблицы включает эту автоматическую подстановку как в формах, так и в таблицах.
когда вы создаете форму SQLFORM на основе таблицы "собака", она автоматически генерирует раскрывающийся список для поля "владелец" и из-за format='%(name)s'
аргумент для определения таблицы "человек" в раскрывающемся списке будет отображаться db.имена вместо ID записи (хотя по форма отправки, поле "владелец" будет хранить связанный идентификатор записи, а не имя).
кроме того, если вы отображаете записи из таблицы "собака" в SQLTABLE или SQLFORM.сетка, поле "владелец" будет показывать имя владельца, а не идентификатор записи владельца.
см.http://web2py.com/books/default/chapter/29/6#Record-representation.