Отобразить только определенные части класса в базу данных с помощью SQLAlchemy?

1

При сопоставлении объекта с использованием 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)?

Теги:
database
sqlalchemy

1 ответ

2
Лучший ответ

Ваш картограф может указать, какие столбцы следует сопоставлять, вы даже можете сопоставить одну таблицу с несколькими объектами и несколькими таблицами для одного объекта.

Здесь документация для сопоставления одного объекта несколько раз: 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'])
  • 0
    @WoLpH Большое спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню