Flask 两个模型之间的sqldb关系

Flask 两个模型之间的sqldb关系,flask,relationship,Flask,Relationship,我目前正在制作一个网站,并且在向用户显示{{patient.name}}时遇到了一些问题,因为他们没有编写它。名称可以通过patient.id进行筛选,如果patient.id和detail.id具有相同的id,例如1,则它们共享相同的名称和信息。 虽然我只是有一些错误 routes.py @app.route("/add-patient-detail/<int:patient_id>", methods=['GET', 'POST']) @login_requ

我目前正在制作一个网站,并且在向用户显示{{patient.name}}时遇到了一些问题,因为他们没有编写它。名称可以通过patient.id进行筛选,如果patient.id和detail.id具有相同的id,例如1,则它们共享相同的名称和信息。 虽然我只是有一些错误

routes.py

@app.route("/add-patient-detail/<int:patient_id>", methods=['GET', 'POST']) 
@login_required  
def add_patient_detail(patient_id): 
    form = DetailForm()   
    if form.validate_on_submit():  
        detail = Detail(detail=patient.id, Symptom=form.Symptom.data,  Initial_diagnosis=form.Initial_diagnosis.data,
        Preliminary_treatment_plan=form.Preliminary_treatment_plan.data, Check_result=form.Check_result.data, 
        Patient_reason=form.Patient_reason.data, Formula=form.Formula.data) # detail=patient.id is the part with error
        db.session.add(detail) 
        db.session.commit() 
        flash('此患者已被加入进数据库当中', 'success') 
        return redirect(url_for('home'))     
    return render_template('add-patient-detail.html', title='Add Patient Detail', form=form)  

我注意到两件事:
1。)您正在将
patient\u detail
传递到您的端点,
patient.id
未在任何地方定义,因此您将无法使用它
2.)在您的
detail
模型上没有名为
detail
的列。通过查看您的模型,连接将出现在
patient\u id
列上。
试试这个:

@app.route("/add-patient-detail/<int:patient_id>", methods=['GET', 'POST']) 
@login_required  
def add_patient_detail(patient_id): #NOTE that you're passing patient_id not patient.id
    form = DetailForm()   
    if form.validate_on_submit():  
        detail = Detail(patient_id=patient_id, Symptom=form.Symptom.data,  Initial_diagnosis=form.Initial_diagnosis.data,
        Preliminary_treatment_plan=form.Preliminary_treatment_plan.data, Check_result=form.Check_result.data, 
        Patient_reason=form.Patient_reason.data, Formula=form.Formula.data) # detail=patient.id is now patient_id=patient_id 
        db.session.add(detail) 
        db.session.commit() 
        flash('此患者已被加入进数据库当中', 'success') 
        return redirect(url_for('home'))     
    return render_template('add-patient-detail.html', title='Add Patient Detail', form=form)  
@app.route(“/add patient detail/”,方法=['GET','POST'])
@需要登录
def add_patient_detail(patient_id):#请注意,您传递的是patient_id而不是patient.id
form=DetailForm()
if form.validate_on_submit():
细节=细节(患者id=患者id,症状=form.Symptom.data,初始诊断=form.Initial诊断.data,
初步治疗计划=表格。初步治疗计划。数据,检查结果=表格。检查结果。数据,
Patient_reason=form.Patient_reason.data,Formula=form.Formula.data)#detail=Patient.id现在是Patient_id=Patient_id
db.session.add(细节)
db.session.commit()
闪光('此患者已被加入进数据库当中', '成功’)
返回重定向(url_for('home'))
返回呈现模板('add-patient-detail.html',title='add patient detail',form=form)

注意我在哪里更改了我在1)和2)中提到的内容。

ahhh,我怎么能让这些愚蠢的错误发生在每个人身上!!!希望你在烧瓶里玩得开心。
@app.route("/add-patient-detail/<int:patient_id>", methods=['GET', 'POST']) 
@login_required  
def add_patient_detail(patient_id): #NOTE that you're passing patient_id not patient.id
    form = DetailForm()   
    if form.validate_on_submit():  
        detail = Detail(patient_id=patient_id, Symptom=form.Symptom.data,  Initial_diagnosis=form.Initial_diagnosis.data,
        Preliminary_treatment_plan=form.Preliminary_treatment_plan.data, Check_result=form.Check_result.data, 
        Patient_reason=form.Patient_reason.data, Formula=form.Formula.data) # detail=patient.id is now patient_id=patient_id 
        db.session.add(detail) 
        db.session.commit() 
        flash('此患者已被加入进数据库当中', 'success') 
        return redirect(url_for('home'))     
    return render_template('add-patient-detail.html', title='Add Patient Detail', form=form)