У меня есть приложение фляги, и я использую флешку sqlalchemy. У меня есть два класса, как показано ниже:
class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(20), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
password = db.Column(db.String(60), nullable=False)
diaries = db.relationship('Diary', backref='author', lazy=True)
def __repr__(self):
return f"User('{self.username}', '{self.email}')"
class Diary(db.Model):
id = db.Column(db.Integer, primary_key=True)
diary_date= db.Column(db.DateTime, nullable=False, default=datetime.now())
emotion = db.Column(db.String(10))
note = db.Column(db.Text)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
def __repr__(self):
return f"Diary('{self.diary_date}', '{self.emotion}','{self.note}')"
Я хочу заказать с помощью diary_date, а затем взять первые семь записей. Я хочу показывать частоэмоции за неделю пользователю. Для заказа я использовал следующий запрос:
>>> records=(db.session.query(Diary).filter_by(Diary.user_id=User.id).join(Diary
,User.diaries).order_by(Diary.diary_date))
Выдает ошибку
File "<stdin>", line 1
SyntaxError: keyword can't be an expression
Является ли запрос неправильным? Можете ли вы предложить лучший запрос?Я новичок в sqlalchemy, извините, если вопрос слишком тупой.