При сопоставлении объекта с использованием SQLAlchemy существует ли способ отображать определенные элементы класса в базу данных или он должен быть отображением 1:1?
Пример:
class User(object):
def __init__(self, name, username, password, year_of_birth):
self.name = name
self.username = username
self.password = password
self.year_of_birth = year_of_birth
Скажите, по какой-то причине, я хочу только сопоставить name
, username
и password
с базой данных и оставить year_of_birth
. Возможно ли это, и это создаст проблемы?
Edit - 25/03/2010
Кроме того, скажем, я хочу сопоставить username
и year_of_birth
с отдельной базой данных. Будет ли эта база данных и одна из них еще подключена (через username
)?
Ваш картограф может указать, какие столбцы следует сопоставлять, вы даже можете сопоставить одну таблицу с несколькими объектами и несколькими таблицами для одного объекта.
Здесь документация для сопоставления одного объекта несколько раз: http://www.sqlalchemy.org/docs/05/mappers.html#multiple-mappers-for-one-class
Вы хотите настроить, какие столбцы следует отображать/не отображать. Это можно сделать, настроив свойства столбца. Документы: http://www.sqlalchemy.org/docs/05/mappers.html#customizing-column-properties
Пример:
mapper(User, users_table, include_properties=['user_id', 'user_name'])
mapper(Address, addresses_table, exclude_properties=['street', 'city', 'state', 'zip'])