Sto cercando di utilizzare una strategia di caricamento sqlalchemy per velocizzare le mie query. Dopo aver letto this mi sono reso conto che stavo facendo l'errore di scorrere i record nel mio modello. L'unico problema è che ottengo questo errore:Errore flask-sqlalchemy NameError: nome globale 'joinload' non definito
NameError: global name 'joinedload' is not defined.
sta succedendo perché sto utilizzando pallone-sqlalchemy o em I dimenticando di importare qualcosa?
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)
Violazione 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)
Template:
{% 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 %}
Per dare un po 'di contesto ai miei modelli ho una scheda di verifica. Ogni ispezione ha una o più violazioni. E ogni violazione ha molte ispezioni
Hey Bibhas, grazie. Semplicemente non ero sicuro che sarebbe stato importato o da dove importare dato che sto usando l'estensione del pallone. – Wilberto
'flask-sqlalchemy' sta usando' sqlalchemy' sotto. Quindi puoi sempre importare moduli da esso. –
@Bibhas Anche se quello che stai dicendo è corretto al 100%, Flask-SQLAlchemy importa anche tutto in 'db', quindi forse puoi usarlo anche tu. – jadkik94