Seite 1 von 1

Flask-SQLAlchemy findet model class nicht

Verfasst: Donnerstag 25. Februar 2021, 21:52
von naheliegend
Hallo,

ich habe:

Code: Alles auswählen

class User(UserMixin, db.Model):
	(...)
	personal_records = db.relationship('PersonalRecord', backref='user', uselist=False, lazy=True)
	
class PersonalRecord(db.Model):
	(...)
	user_id = db.Column(db.Integer, db.ForeignKey('user.id'))	
und bei

Code: Alles auswählen

flask db init 
gibt er mir:
sqlalchemy.exc.InvalidRequestError: When initializing mapper mapped class User->users, expression 'PersonalRecord' failed to locate a name ('PersonalRecord'). If this is a class name, consider adding this relationship() to the <class 'app.models.User'> class after both dependent classes have been defined.
Was tue ich falsch?

Re: Flask-SQLAlchemy findet model class nicht

Verfasst: Donnerstag 25. Februar 2021, 22:09
von sparrow
Aus der Hüfte: Die Reihenfolge. Erst PersonalRecord definieren.

Re: Flask-SQLAlchemy findet model class nicht

Verfasst: Freitag 26. Februar 2021, 17:38
von naheliegend
Hast Recht.

Re: Flask-SQLAlchemy findet model class nicht

Verfasst: Freitag 26. Februar 2021, 18:12
von naheliegend
Frage dazu:

Wenn ich jetzt dem current_user aus Flask-Login einem personal_record zuordnen will, dann kann ich das ja über:

Code: Alles auswählen

pr = PersonalRecord(record = 'solved P-NP-Problem' , user_id=current_user.id)
machen und danach dann mit

Code: Alles auswählen

current_user.personal_record.record
ausgeben.

Könnte man auch einem bestehenden pr_2 einen neuen user_2 zuordnen? Wenn ja, wie?
Also die andere Richtung der one-to-one Beziehung.