У меня есть общие данные {номер сообщения зарегистрированного пользователя) отображаться на каждой странице. Я могу просто передать шаблону как
dict={'messagenumber':5}
return render_to_response('template.html',dict,context_instance=RequestContext(request))
Но это выглядит утомительным, если у меня есть эта dict передача данных в очень страницу. Существует ли более легкий способ передать общие данные каждой странице?
Спасибо
Меня поражает, насколько это распространено. Вы хотите использовать контекстные процессоры мой друг!
Очень легко создать, например, так:
def messagenumber_processor(request):
return {'messagenumber': 5}
Поскольку messagenumber является динамической переменной, основанной на пользователе, вы можете получить данные из базы данных, извлекая их из request.user
, поскольку у вас есть полный доступ к request
в каждом контекстном процессоре.
Затем добавьте это в TEMPLATE_CONTEXT_PROCESSORS
в settings.py и все готово :-) Вы можете делать любые операции с базой данных или другую логику внутри контекстного процессора, попробуйте!
Напишите свою собственную функцию для ее обработки.
def render_with_message_number(template, message_number, request):
return render_to_response(template, dict(messagenumber=message_number),
context_instance=RequestContext(request))
И не делайте тень dict
.