Tôi đang cố gắng sử dụng một chiến lược tải sqlalchemy để tăng tốc độ truy vấn của tôi. Sau khi đọc this Tôi nhận ra rằng tôi đã mắc sai lầm khi lặp qua các bản ghi trong mẫu của tôi. Vấn đề duy nhất là tôi nhận được lỗi này:Lỗi bình phương sqlalchemy NameError: tên toàn cầu 'joinload' không được xác định
NameError: global name 'joinedload' is not defined.
Điều này xảy ra vì tôi đang sử dụng bình phương sqlalchemy hoặc em quên nhập gì đó?
Models.py:
inspection_violations = db.Table('inspection_violations',
db.Column('violation_id', db.Integer, db.ForeignKey('violations.violation_number')),
db.Column('inspection_id', db.Integer, db.ForeignKey('inspection.inspection_id')),)
class Inspection(db.Model):
inspection_id = db.Column(db.Integer, primary_key=True)
violations = db.relationship('Violations', secondary=inspection_violations, backref=db.backref('inspection', lazy='dinamic'))
facility_id = db.Column(db.String(100), db.ForeignKey('facilities.branch_name'))
class Violations(db.Model):
violation_number = db.Column(db.Integer, primary_key=True)
details = db.Column(db.Text)
Vi phạm Blueprint:
@violations_blueprint.route('/violations/<int:violation_number>')
def show_single_violation(violation_number):
violation = Violations.query.options(joinedload('inspection')).get(violation_number)
return render_template('violations/single-violation.html' ,violation=violation)
mẫu:
{% for inspection in violation.inspection %}
<p><a href="{{ url_for('inspection_blueprint.show_inspection', id=inspection.inspection_id) }}"> {{ inspection.facilities.branch_name }}</a></p>
{% endfor %}
Để đưa ra một số ngữ cảnh để mô hình của tôi Tôi có một biên bản kiểm tra. Mọi kiểm tra đều có một hoặc nhiều vi phạm. Và mỗi vi phạm có nhiều cuộc thanh tra
Xin chào Bibhas, cảm ơn. Tôi chỉ không chắc chắn nếu nó đã được nhập khẩu hoặc nơi để nhập khẩu kể từ khi tôi đang sử dụng phần mở rộng bình. – Wilberto
'bình-sqlalchemy' đang sử dụng' sqlalchemy' bên dưới. Vì vậy, bạn luôn có thể nhập các mô-đun từ đó. –
@Bibhas Mặc dù những gì bạn đang nói là chính xác 100%, Flask-SQLAlchemy cũng nhập mọi thứ vào 'db', vì vậy có thể bạn cũng có thể sử dụng nó. – jadkik94