У меня есть 3 таблицы, которые мне трудно пройти. Они состоят из таблицы CAR, таблицы LOCATION и таблицы CARLOCATION. Автомобиль хранит данные об автомобиле, местоположение хранит данные о местоположении, а таблица расположения находится посередине и связывает автомобиль с его текущим местоположением.
Используя Flask и SQLAlchemy, я хочу, чтобы пользователь мог выполнять поиск автомобиль по идентификатору, который связывается с таблицей CarLocation с помощью отношения, а таблица CarLocation также связывается с таблицей Location с помощью отношения. Итак, Car -> CarLocation -> Местоположение
Однако, когда я вызываю Car.CarLocation.Location.Name, я получаю сообщение об ошибке:
File "D: \ Documents \ GitHub \ car_share \ karshare \ views.py ", строка 370, в поисковой машине. Местоположение '
Любой, кто может мне помочь, будет спасателем!
Мой models.py выглядит следующим образом:
class Car(db.Model):
__tablename__ = 'Car'
__table_args__ = {'schema': 'KarShare'}
CarID = db.Column(db.Integer, primary_key=True, server_default=db.text(
"nextval('\"KarShare\".\"Car_CarID_seq\"'::regclass)"))
Make = db.Column(db.String(64), nullable=False)
Model = db.Column(db.String(64), nullable=False)
Year = db.Column(db.Integer, nullable=False)
Odometer = db.Column(db.Integer, nullable=False)
CarType = db.Column(db.String(64), nullable=False)
NumSeats = db.Column(db.Integer, nullable=False)
FuelType = db.Column(db.String(64), nullable=False)
CostPerHour = db.Column(db.Float, nullable=False)
TransmissionType = db.Column(db.String(9), nullable=False)
Registration = db.Column(db.String(), nullable=False)
class CarLocations(db.Model):
__tablename__ = 'CarLocations'
__table_args__ = {'schema': 'KarShare'}
CarID = db.Column(db.ForeignKey('KarShare.Car.CarID'), primary_key=True,
nullable=False)
CurrentLocationID = db.Column(db.ForeignKey('KarShare.Location.LocationID'),
nullable=True)
Location = db.relationship("Location", backref="CarLocations",
lazy=True)
Car = db.relationship("Car", backref="CarLocations",lazy=True)
class Location(db.Model):
__tablename__ = 'Location'
__table_args__ = {'schema': 'KarShare'}
LocationID = db.Column(db.Integer, primary_key=True, server_default=db.text(
"nextval('\"KarShare\".\"Location_LocationID_seq\"'::regclass)"))
Name = db.Column(db.String(64), index=True, unique=True, nullable=False)
StreetAddress = db.Column(db.String(128), nullable=False)
City = db.Column(db.String(64), index=True, nullable=False)
State = db.Column(db.String(64), index=True, nullable=False)
Longitude = db.Column(db.Numeric(precision=9, scale=6), nullable=False)
Latitude = db.Column(db.Numeric(precision=8, scale=6), nullable=False)
CarSpaces = db.Column(db.Integer, nullable=False)
И простой код, вызывающий ошибка:
SearchedCar = Car.query.filter_by(CarID=form.search.data).first()
Make = SearchedCar.Make
Model = SearchedCar.Model
Year = SearchedCar.Year
Odometer = SearchedCar.Odometer
CarType = SearchedCar.CarType
NumSeats = SearchedCar.NumSeats
FuelType = SearchedCar.FuelType
CostPerHour = SearchedCar.CostPerHour
TransmissionType = SearchedCar.TransmissionType
CurrentLocation = SearchedCar.CarLocations.Location.Name
Registration = SearchedCar.Registration
Спасибо за любую помощь, которую вы можете оказать!