2016-05-03 12 views
-1

Ich habe zwei Modelle mit einem Eins-zu-BeziehungFlask SQLAlchemy Beziehung Abfrage

class UserModel(db.Model): 
    username = db.Column(db.String(80), unique=True) 
... 
    weekday = db.relationship('weekDay', backref="usermodel") 

class weekDay(db.Model): 
    dayname = db.Column(db.String(15)) 
... 
    usermodel_id = db.Column(db.Integer, db.ForeignKey('usermodel.id')) 

Wie kann ich einen bestimmten Wochentag im Zusammenhang mit einem bestimmten Benutzer zurück.

Die folgende Abfrage läuft, aber scheint nicht das richtige Ergebnis zurück -

weekDay.query.filter(UserModel.username == 'tester').filter(weekDay.dayname=='Monday').first() 

EDIT: ich endlich gelernt, wie man eine funktionierende Abfrage erstellen, die meine Bedürfnisse erfüllt, wie ist mein Verständnis, falls irgendjemand anderes braucht diese

unter Verwendung meiner oben definierten Modelle Ich startete meine Abfrage mit dem Kind-Knoten und trat explizit dem Elternteil mit der select_from und join-Anweisung und dann schließlich in meinen benutzerdefinierten Filtern hinzugefügt, um nach was ich brauche zu suchen ed. Hier ist die Abfrage

weekDay.query.select_from(UserModel).join(UserModel.weekday).filter(UserModel.username == "username_goes_here").filter(weekDay.dayname=="dayname_goes_here").first() 
+0

http://docs.sqlalchemy.org/en/latest/orm/tutorial.html#querying-with-joins – davidism

Antwort

0

Nehmen wir an, Sie haben einen Benutzer mit der ID 5, wenn Sie bekommen Wochentag möchten die mit diesem Benutzer zuordnen dann: day=weekDay.query.filter_by(usermodel_id=5).first() day.dayname geben Ihnen Tag Namen assoziieren mit diesem Benutzer. Wenn Sie möchten, haben

+0

gut ja, aber ich möchte eine weitere Ebene der Filterung hinzufügen. Diese Abfrage gibt das erste Wochentagelement für Benutzer-ID 5 zurück. Ich möchte ein bestimmtes Wochentagselement für Benutzer-ID 5 finden – Zee18

Verwandte Themen