У меня есть код, который получает текущий зарегистрированный пользователь.Сохранение Django Views DRY
userID = request.session.get("_auth_user_id")
if userID:
loggedin_user = User.objects.get(pk=int(userID))
else:
loggedin_user = None
Я хочу, чтобы имя пользователя отображалось на каждой странице.
На данный момент я ставлю код в каждом представлении и передавая объект пользователя к каждому шаблону
return render_to_response('index.html', {loggedin_user})
Это, кажется, идет против D.R.Y этики Джанго. Как я могу это сделать, повторяя себя?
EDIT: Возможно, Пользователь был плохим примером.
Что делать, если я хотел бы получить список объектов из базы данных,
items = Item.objects.all()
и перечислить их на everypage.
Должен ли я написать этот код и передать список шаблону во всех представлениях. Или я могу написать код, который сделает этот список доступным для всех шаблонов?
, но тогда у вас есть {% load my _template_tag%} в 20 шаблонах ...это не DRY –
Если вы используете его часто, скорее всего, это в родительском шаблоне, который вы расширяете, и, следовательно, вы будете иметь его только в одном месте. Если это не так, вы, вероятно, можете использовать настраиваемый контекстный процессор. –