Я использую Eve-SQLAlchemy == 0.5.0
Я бы хотел выполнить вложенный запрос с использованием Postman для моих пользователей, чтобы я нашел всех пользователей, входящих в указанную организацию.
Используя SQL, я бы написал свой запрос так:
select * from app_user
left join user_organization on user_organization.user_id = app_user.id
left join organization on organization.id = user_organization.organization_id
where organization.id = 2
У меня есть пользовательская модель, организационная модель и реляционная модель, связывающая две пользовательские организации.
from sqlalchemy import Column, DateTime, func, String, Integer
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class BaseModel(Base):
id = Column(Integer, primary_key=True, autoincrement=True)
__abstract__ = True
_created = Column(DateTime, default=func.now())
_updated = Column(DateTime, default=func.now(), onupdate=func.now())
_etag = Column(String(40))
class User(BaseModel):
__tablename__ = 'app_user'
organizations = relationship("Organization", secondary=UserOrganization.__tablename__)
class Organization(BaseModel):
__tablename__ = 'organization'
name = Column(String)
class UserOrganization(BaseModel):
__tablename__ = 'user_organization'
user_id = Column(Integer,
ForeignKey('app_user.id', ondelete='CASCADE'))
organization_id = Column(Integer,
ForeignKey('organization.id', ondelete='CASCADE'))
В моем settings.py у меня зарегистрированы ресурсы:
# Resource Registration
DOMAIN = DomainConfig({
'organization': ResourceConfig(Organization),
'user': ResourceConfig(User)
}).render()
У меня есть серия настроек коллекций почтальонов, и с помощью запроса GET я могу легко запросить любой атрибут ... GET localhost:5000/user?where={"id":1}
Я пробовал (среди прочего):
GET user?where={"organizations": {"organization_id" :2 }}
GET user?where={"organizations": 2}