Я пытаюсь преобразовать приложение Python Flask с 2,7 до 3,5. У меня простая система CMS, использующая SQLAlchemy, где мои страницы отображаются на странице Index с заголовком и контентом (которые усекаются). Вот где моя проблема.Python 3.5 TypeError: необходим байтовый объект, а не 'str' с использованием фильтра truncate
Он возвращает мои страницы в виде списка и моего содержимого в виде строки. Я пытался кодировать «страницы», но это возвращает другую ошибку, потому что это недопустимо для объекта списка.
Ошибка:
File "C:\Python35\lib\site-packages\jinja2\filters.py", line 481, in do_truncate
result = s[:length - len(end)].rsplit(' ', 1)[0]
TypeError: a bytes-like object is required, not 'str'
Маршрут:
@app.route("/")
def main():
pages = db.session.query(Pages).all()
return render_template('index.html', title='Dashboard', pages=pages)
index.html страница
{% for page in pages %}
<div>
<a href="{{ url_for('view_page', page_id=page.id) }}"><h3>{{ page.title|truncate(150) }}</h3></a>
<p>{{ page.content|truncate(450)|striptags }}</p>
</div>
{% endfor %}
Так что 'page.title' - объект байтов. Фильтр 'truncate' работает только для объектов' str'. –