#python #flask #sqlalchemy #flask-sqlalchemy
#python #flask #sqlalchemy #flask-sqlalchemy
Вопрос:
Я не могу получить ограниченное количество строк. Я всегда получаю сообщение об ошибке при каждой попытке.
Пожалуйста, обратите внимание, что я также пытаюсь разбить на страницы ограниченное количество извлекаемых строк.
Программа отлично работает без использования ограничения. Он может извлекаться случайным образом и разбиваться на страницы, но выдает ошибку, когда я пытаюсь использовать .limit()
def question(page=1):
# questions = Question.query.paginate(page, per_page=1)
quess = Question.query.order_by(func.rand())
quest = quess.limit(2)
questions = quest.paginate(page, per_page=1)
Это ошибка, которую я продолжаю получать…
sqlalchemy.exc.InvalidRequestError
InvalidRequestError: Query.order_by() вызывается для запроса, к которому уже применено ОГРАНИЧЕНИЕ или СМЕЩЕНИЕ. Чтобы изменить результаты запроса с ограниченным количеством строк, сначала вызовите from_self() . В противном случае вызовите order_by() перед применением limit() или offset() .
Ответ №1:
Вы не можете вызвать order_by()
after limit()
в том же запросе. SQLAlchemy не позволяет вам этого делать.
Попробуйте использовать from_self()
перед вызовом paginate()
.
Question.query.order_by(func.rand())
.limit(2).from_self()
.paginate(page, per_page=1)