Найти - Пользователи
Полная версия: Получить список моделей условием через поле связи. SQLAlchemy
Начало » Базы данных » Получить список моделей условием через поле связи. SQLAlchemy
1 2
buddha
Простейший вопрос. Алхимию только начал постигать.
Есть модельки:
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.
Как достать всех пользователей для этого чата ?
Singularity
buddha
ну сделай в консоли
type(Users.users_chat)
вроде как у тебя будет InstrumendList по которому можно итерироваться.
buddha
Понимаю, вопрос глупый был. Да и в документашке это нашел.
Теперь вот ломаю голову как через экземпляр модели Chats добавить кучу экземпляров Users, на всё это сделать session.commit() , чтобы UsersChat заполнилась сама автоматически.
Возмодно ли такое?
Наподобии джанговского SomeModel.mtm_field.add()
buddha
Неверно описал вопрос в первом посте.
Поправил.
4kpt_II
ChoiceType(APP_USERSCHAT_TYPE)
Используете sqlalchemy_utils?
buddha
Верно.
4kpt_II
Не пользуйтесь!!!
Пользуйтесь любым (IPAddressType, ColorType, MailType), короме ChoiceType…
Лучше напилите свой
buddha
Там спрятано зло? =)

Я в проекте не один, сказать всей команде - не пользуемся, равносильно ничег оне сказать)
4kpt_II
Тогда выхватите массу проблем. Готовьтесь. Есть вероятность, что база ляжет
Для чего sqlalchemy используете? Flask?
buddha
Нет, пишем API на чистом питоне. С БД работа через sqlalchemy.

А есть ссылочки на эту проблему , статейки?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB