Je voudrais savoir comment passer une variable à tous mes modèles, sans répéter le même code sur chaque méthode dans mon fichier views.py?Django - Comment rendre une variable disponible pour tous les templates?
Dans l'exemple ci-dessous, je souhaite que des catégories (un tableau d'objets de catégorie) soient disponibles pour tous les modèles de l'application Web.
Eg: I would like to avoid writing 'categories':categories on every method. Is it possible?
méthode Une vue
def front_page(request):
categories = Category.objects.all()
if is_logged_in(request) is False:
return render_to_response('users/signup.html', {'is_logged_in': is_logged_in(request), 'categories':categories}, context_instance=RequestContext(request))
else:
return render_to_response('users/front_page.html', {'is_logged_in': is_logged_in(request), 'categories':categories},context_instance=RequestContext(request))
Une autre méthode de vue
def another_view_method(request):
categories = Category.objects.all()
return render_to_response('eg/front_page.html', {'is_logged_in': is_logged_in(request), 'categories':categories},context_instance=RequestContext(request))
Ils sont appelés 'CONTEXT PROCESSORS' –