формат представления в базе данных 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.