Уведомления

Группа в Telegram: @pythonsu

#1 Июль 3, 2014 16:44:43

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

Получить список моделей условием через поле связи. SQLAlchemy

Простейший вопрос. Алхимию только начал постигать.
Есть модельки:

class UsersChat(Base):
    __tablename__ = 'users_chat '
    __table_args__ = {'extend_existing': True}
 
    chat_id     = Column(Integer, ForeignKey('chats.id'), primary_key=True)
    user_id     = Column(Integer, ForeignKey('users.id'), unique=True, nullable=False)
    last_update = Column(Integer, onupdate=datetime.datetime.utcnow, default=datetime.datetime.now)
    cuStatus    = Column(ChoiceType(APP_USERSCHAT_TYPE), nullable=False)
 
 
class Chats(Base):
    __tablename__ = 'chats'
    __table_args__ = {'extend_existing': True}
    id = Column(Integer, primary_key=True)
    description = Column(Integer, nullable=False)
    users_chat = relationship('UsersChat', backref='chat', cascade='all, delete')
 
 
class Users(Base):
    __tablename__ = 'users'
    id            = Column(Integer, primary_key=True)
    firstname     = Column(String(128), nullable=False)
    lastname      = Column(String(128), nullable=False)
    password      = Column(String(128), nullable=False)
    users_chat    = relationship('UsersChat', backref='user', cascade='all, delete')

Допустим есть одна запись в таблице Chats с id=1. Есть куча пользователей, у которых есть записи в таблице UsersChat с полем chat_id=1.
Как достать всех пользователей для этого чата ?

Отредактировано buddha (Июль 4, 2014 10:26:17)

Офлайн

#2 Июль 3, 2014 17:28:22

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Получить список моделей условием через поле связи. SQLAlchemy

buddha
ну сделай в консоли

type(Users.users_chat)
вроде как у тебя будет InstrumendList по которому можно итерироваться.

Офлайн

#3 Июль 4, 2014 09:29:14

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

Получить список моделей условием через поле связи. SQLAlchemy

Понимаю, вопрос глупый был. Да и в документашке это нашел.
Теперь вот ломаю голову как через экземпляр модели Chats добавить кучу экземпляров Users, на всё это сделать session.commit() , чтобы UsersChat заполнилась сама автоматически.
Возмодно ли такое?
Наподобии джанговского SomeModel.mtm_field.add()

Офлайн

#4 Июль 4, 2014 10:26:32

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

Получить список моделей условием через поле связи. SQLAlchemy

Неверно описал вопрос в первом посте.
Поправил.

Офлайн

#5 Июль 4, 2014 13:42:20

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Получить список моделей условием через поле связи. SQLAlchemy

ChoiceType(APP_USERSCHAT_TYPE)
Используете sqlalchemy_utils?

Офлайн

#6 Июль 4, 2014 13:44:11

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

Получить список моделей условием через поле связи. SQLAlchemy

Верно.

Офлайн

#7 Июль 4, 2014 13:47:03

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Получить список моделей условием через поле связи. SQLAlchemy

Не пользуйтесь!!!
Пользуйтесь любым (IPAddressType, ColorType, MailType), короме ChoiceType…
Лучше напилите свой

Отредактировано 4kpt_II (Июль 4, 2014 13:47:17)

Офлайн

#8 Июль 4, 2014 13:49:10

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

Получить список моделей условием через поле связи. SQLAlchemy

Там спрятано зло? =)

Я в проекте не один, сказать всей команде - не пользуемся, равносильно ничег оне сказать)

Офлайн

#9 Июль 4, 2014 13:53:19

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Получить список моделей условием через поле связи. SQLAlchemy

Тогда выхватите массу проблем. Готовьтесь. Есть вероятность, что база ляжет
Для чего sqlalchemy используете? Flask?

Офлайн

#10 Июль 4, 2014 14:04:45

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

Получить список моделей условием через поле связи. SQLAlchemy

Нет, пишем API на чистом питоне. С БД работа через sqlalchemy.

А есть ссылочки на эту проблему , статейки?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version