簡體   English   中英

SQLAlchemy primaryjoin 為一對多關系返回空 object

[英]SQLAlchemy primaryjoin returns emtpy object for one-to-many relation

我的表定義為:

class Car(Base):
    __tablename__ = 'cars'
    CarID = Column('id', Integer, primary_key=True)
    CarDetails = relationship(
          "CarDetails", 
          back_populates="Car", 
          primaryjoin="and_(CarDetails.CarID == Car.CarID, CarDetails.CarNumber == 1)",
        )
    CustomCarDetails = relationship(
              "CarDetails", back_populates="Car", uselist=True)

class CarDetails(Base):
    __tablename__ = 'car_details'
    ID = Column('id', Integer, primary_key=True)
    CarNumber = Column('car_number', Integer, default=1)
    CarID = Column('table_id', Integer, ForeignKey(
        'tables.id'), nullable=False)
    Car = relationship("Car", back_populates="CustomCarDetails")

汽車:CarDetails遵循一對多關系。 CarDetails列(在 Car 中),我想為相應的 Car 填充CarNumber=1的條目。 根據上面的定義,我得到空的 object。我也提到了這個 我在這里錯過了什么?

當我將其定義如下時,CarDetails 從 CarDetails 返回一個隨機條目(可能返回CarNumber != 1的記錄),而我只想要對應於CarNumber=1的條目:

CarDetails = relationship(
                "CarDetails", 
                back_populates="Car", 
                uselist=False)

我怎樣才能解決這個問題?

添加uselist=False在這里工作:

CarDetails = relationship(
      "CarDetails", 
      back_populates="Car", 
      primaryjoin="and_(CarDetails.CarID == Car.CarID, CarDetails.CarNumber == 1)",
      uselist=False
    )

我在文檔中找不到這個!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM