Я не следующий класс промежуточного слоя:Джанго метод промежуточного process_template_response не называют
class CommonContextMiddleware:
def process_template_response(self, request, response):
# Get the context and top videos
context = response.context_data
...
# Add most_recent and most_viewed to the context...
context['most_recent'] = top_videos['most_recent'][:3]
context['most_viewed'] = top_videos['most_viewed'][:3]
# ...then continue rendering
return response
Однако, независимо от того, что я положил в функции, она никогда не вызывается. Я предположил, что этот метод будет вызван для каждого генерируемого ответа шаблона, я ошибаюсь?
Заранее спасибо.
Я просто прочитал этот ответ, когда я вручную заменил каждый HttpResponse (t.render (c)) с помощью TemplateResponse (...). Я знал, что есть более простой способ. Благодаря! Кстати, в процессоре контекста, если две переменные имеют одно и то же имя (возвращается из процессора и один набор в контексте), какой из них побеждает? – Saul
Странно, что render() с указанным шаблоном не возвращает TemplateResponse. Особенно странно, потому что встроенный 'django.contrib.auth.views.login' возвращает его. Поэтому мне нужно как промежуточное программное обеспечение, так и шаблонный обработчик контекста, чтобы убедиться, что переменные введены. Странный. Процессор контекста шаблона изолирует переменную шаблона dicts друг от друга, что является негибким (однако может быть более подверженным ошибкам). –
@ danielRoseman: URL-адрес TempleResponse составляет 404 сейчас! – NoobEditor