![](/img/trans.png)
[英]While creating web forms in Flask, I'm getting the error: jinja2.exceptions.UndefinedError: 'reviewform' is undefined
[英]Jinja variable undefined error while creating database
我正在尝试使用 2 种类型的用户(管理员和患者)创建一个 web 应用程序数据库。
我也是 Python 和 Flask 的新手。
我已经完成了关于 Admin 的部分,现在我正在做 Patient 部分。
我正在尝试从基于 patient_id 的导航栏访问 user_records.html。 (如果您想知道什么是患者 ID,请参见下图)
这样做时,我遇到了一个未定义的错误变量。 我尝试调试但没有运气,现在我想寻求一些帮助,如果你能找到并告诉我是什么导致了错误。
Jinja 未定义错误:
UndefinedError
jinja2.exceptions.UndefinedError: 'patients' is undefined
这是我的一些代码。
base.html(包括导航栏)
<a class="nav-item nav-link" id="home2" href="/">Home</a>
<a class="nav-item nav-link" id="profile" href="/user/user_profile">Profile</a>
<a class="nav-item nav-link" id="Records" href="/user/user_records/{{patients.id}}">Records</a>
<a class="nav-item nav-link" id="logout" href="/logout">Logout</a>
视图.py
@views.route('/user/user_records/<int:patient_id>', methods=['GET', 'POST'])
@login_required
def user_records(patient_id):
patient_id = Views.query.get_or_404(patient_id=patient_id)
if request.method == 'POST':
name = request.form.get('name')
note = request.form.get('note')
doctor = request.form.get('doctor')
validated = request.form.get('validated')
date = request.form.get('date')
tdate = datetime.datetime.strptime(date, '%Y-%m-%d').date()
file = request.files['file']
flash('Added successfully', 'success')
new_view = Views(patient_id=patient_id, name=name, note=note, doctor=doctor, validated=validated, date=tdate, filename=file.filename, data=file.read())
db.session.add(new_view)
db.session.commit()
view_list = Views.query.filter_by(patient_id=patient_id)
return render_template("user_records.html", user=current_user, view_list=view_list)
用户记录.html
<table class="table table-hover table dark">
<tr>
<th>Date</th>
<th>Name</th>
<th>Note Type</th>
<th>Doctor</th>
<th>Validated</th>
<th>Actions</th>
</tr>
{% for rec in rec_list %}
<tr>
<td>{{ rec.date }}</td>
<td>{{ rec.name }}</td>
<td>{{ rec.note }}</td>
<td>{{ rec.doctor }}</td>
<td>{{ rec.validated }}</td>
<td width="150">
<a href=""><i class="bi bi-eye" style="color: black; font-size:20px;"></i></a> *emphasized text*
<a href="" value="delete" onclick="return confirm('Are you sure you want to delete?')"><i style="color: black; font-size:20px;" class="bi bi-trash3"></i></a> 
<a href="" value="download"><i style="color: black; font-size:20px;" class="bi bi-download"></i></a> 
</td>
</tr>
{% endfor %}
</table>
models.py(这里是我们获取 patient_id 的部分)
class Patients(db.Model):
id = db.Column(db.Integer, primary_key=True)
lname = db.Column(db.String(150))
fname = db.Column(db.String(150))
mname = db.Column(db.String(150))
gender = db.Column(db.String(150))
age = db.Column(db.String(150))
phone = db.Column(db.String(150))
email = db.Column(db.String(150))
date = db.Column(db.DateTime(timezone=True))
bday = db.Column(db.DateTime(timezone=True))
mstatus = db.Column(db.String(150))
address = db.Column(db.String(150))
phid = db.Column(db.String(150))
views = db.relationship('Views', backref='patients')
class Views(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(150))
note = db.Column(db.String(150))
doctor = db.Column(db.String(150))
validated = db.Column(db.String(150))
date = db.Column(db.DateTime(timezone=True))
data = db.Column(db.LargeBinary)
filename = db.Column(db.String(50))
patient_id = db.Column(db.Integer, db.ForeignKey('patients.id'))
我希望你能帮我调试错误:)!
您在此处的基本模板中使用变量patients.id
:
<a class="nav-item nav-link" id="Records" href="/user/user_records/{{patients.id}}">Records</a>
我没有在代码中的任何地方看到您将模板传递给名为 patients 的 object。 您是说user.id
吗?
我还看到您在user_records.html
rec_list
你的意思是参考你通过的view_list
object?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.