Задать вопрос
Vdomike
@Vdomike
Веб-разработчик

Как написать middleware для вывода дополнительной строки на каждой странице?

Разбираюсь понемногу с middleware. Но разобраться пока не могу.
Вот такой пример у меня не работает: python.su/forum/topic/11368
Пишу я тоже process_response. В доках написано, что response is the HttpResponse. Проверяю, у меня он почему-то TemplateResponse. Это у меня что-то во вьюшках не так? Ну ладно, сделала вот так:
class MyOwnMiddleWare(object):
def process_response(self, request, response):
content = response.rendered_content
content = content.replace('</body>', ' my piece of text '</body>')
response = HttpResponse(content, content_type="text/html")
return response

И на некоторых страницах это работает. А на некоторых нет :))) Возникает ошибка 'HttpResponseRedirect' object has no attribute 'rendered_content', То есть response уже другой объект уже получается.
Как мне это поправить? Я вообще так делаю? А то вот еще есть process_template_response метод, может его надо?
  • Вопрос задан
  • 533 просмотра
Подписаться 2 Оценить 7 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    Django: создание backend-приложений
    7 недель
    Далее
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
un1t
@un1t
Проверяй response.status_code - если 200 то подменяй, если другой то не подменяй.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы