[英]SQLAlchemy primaryjoin returns emtpy object for one-to-many relation
I have tables defined as:我的表定义为:
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")
Car: CarDetails follows 1-to-many relation.汽车:CarDetails遵循一对多关系。 In CarDetails column (in Car), I want to populate entries with CarNumber=1 for the respective Car.
在CarDetails列(在 Car 中),我想为相应的 Car 填充CarNumber=1的条目。 With the above definition, I get empty object. I have referred this also.
根据上面的定义,我得到空的 object。我也提到了这个。 What am I missing here?
我在这里错过了什么?
When I have it defined as follows, CarDetails returns a random entry from CarDetails(may return the record with CarNumber != 1 ), whereas I only want entry corresponding to CarNumber=1 :当我将其定义如下时,CarDetails 从 CarDetails 返回一个随机条目(可能返回CarNumber != 1的记录),而我只想要对应于CarNumber=1的条目:
CarDetails = relationship(
"CarDetails",
back_populates="Car",
uselist=False)
How can I fix this?我怎样才能解决这个问题?
Adding uselist=False worked here:添加uselist=False在这里工作:
CarDetails = relationship(
"CarDetails",
back_populates="Car",
primaryjoin="and_(CarDetails.CarID == Car.CarID, CarDetails.CarNumber == 1)",
uselist=False
)
I couldn't find this in the documentation!!我在文档中找不到这个!!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.