首页 > 解决方案 > 使用 gettattr 从属性中获取属性

问题描述

每次我运行我的代码它返回我它返回一个空 json 这是我的主文件中的一个代码块,它应该返回具有指定 ID 的指定音频类型我试图在这里使用两个 getattr 从属性访问属性但它什么也不返回

from new_project import models

class AudioType(str, Enum):
    Song = "Song"
    Podcast = "Podcast"
    Audiobook = "Audiobook"

@app.get('/{audio_type}/{audio_id}')
def show_one(audio_type: AudioType,audio_id: int, db: Session = Depends(database.get_db)):
    if audio_type == AudioType.Song:
        return db.query(getattr(getattr(models, audio_type), "id")).filter(audio_id == id)

这就是我的models.py文件


class Song(Base):
    __tablename__ = 'song'
    id = Column(Integer, primary_key=True, unique=True, index=True)
    name = Column(String(100), nullable=False)
    duration = Column(Integer, nullable=False)
    uploadTime = Column(DateTime(timezone=True))
    __table_args__ = (
        CheckConstraint(duration >= 0, name='check_bar_positive'),
        {})


class Podcast(Base):
    __tablename__ = 'podcast'
    id = Column(Integer, unique=True, primary_key=True)
    name = Column(String(100), nullable=False)
    duration = Column(Integer, nullable=False)
    uploadTime = Column(DateTime(timezone=True))
    host = Column(String(100), nullable=False, )
    #participants = Column
    __table_args__ = (
        CheckConstraint(duration >= 0, name='check_bar_positive'),
        {})

class Audiobook(Base):
    __tablename__ = 'audiobook'
    id = Column(Integer, unique=True, primary_key=True ,nullable=False)
    title = Column(String(100), nullable=False)
    author = Column(String(100), nullable=False, )
    narrator = Column(String(100), nullable=False)
    duration = Column(Integer, nullable=False)
    uploadTime = Column(DateTime(timezone=True))
    __table_args__ = (
        CheckConstraint(duration >= 0, name='check_bar_positive'),
        {})


标签: pythonfastapi

解决方案


推荐阅读