Я пытаюсь отобразить имя доктора из другой таблицы, связанной внешним ключом.Я могу отобразить doctor_id, но не могу отобразить его имя.
Я посмотрел на это решение чтение из объединенного запроса в flask-sqlalchemy , но оно немного отличается, поскольку я запрашиваю издругая сторона и не может использовать значение backref в качестве ссылки.Я удалил неактуальный код.
class Appointment(db.Model):
id = db.Column(db.Integer, primary_key=True)
patient_id = db.Column(db.Integer, db.ForeignKey('patient.id'),
nullable=False)
doctor_id = db.Column(db.Integer, db.ForeignKey('doctor.id'),
nullable=False)
class Doctor(db.Model):
id = db.Column(db.Integer, primary_key=True)
first_name = db.Column(db.String(30), unique=False, nullable=False)
appointments = db.relationship('Appointment', backref =
db.backref('doctor',lazy=True))
и запрос
all_appmts = db.session.query(Appointment)
.filter_by(patient_id=id)
.join(Doctor)
result =appointments_schema.dump(all_appmts)
return render_template('patient.html', all_appointments=result.data)
, и это то, что я пытался
{% for a in all_appointments %}
<td>{{ a.doctor_id.first_name }}</td>
{% endfor %}
Отображаемое имя доктора должно быть основанона ID врача для этого назначения.
Вот часть зефира.
class AppointmentSchema(ma.Schema):
class Meta:
# Fields to expose
fields = ('id','start_datetime', 'end_datetime', 'title',
'patient_id', 'doctor_id')
appointments_schema = AppointmentSchema(many=True)