Salut,
Je viens de tester ce que j'ai pu voir sur tes liens. Cela a l'air relativement simple mais je me heurte a un petit problème sur la fin. Je ne sais pas quoi faire des dernières directives:
Now when we instantiate a context, we can do it by RequestContext(request, context_dictionary) >instead of Context(context_dictionary).
If you’re using the render_to_response shortcut, just pass it as the context_instance keyword >argument to render_to_response, like so:
return render_to_response("my_app/my_template.html", {'some_var': 'foo'},
context_instance=RequestContext(request))
If you’re using a generic view, you don’t have to do anything except define the >TEMPLATE_CONTEXT_PROCESSORS setting; generic views use RequestContext by default.
And you’re done; now you’ll get your media_url variable available in all of your templates >without having to repetitively call a template tag.
app.home.context_processors.py
Il faudrait donc ajouter des directives dans une vue, mais moi je n'en ai pas puisque je veut l'ajouter dans le template principale que j'extends avec tout mes autres templates.
Donc pour l'instant j'ai ceci, qui ne me génère pas d'erreur mais qui ne m'affiche rien.
PS: Sur la fin du post le dernier morceau de code fait tout fonctionner mais ne répond pas vraiment au cahier des charges.
| from app.company.models import Company
#For the list of company in the main menu
def company_select(request):
list_company = Company.objects.all()
return {"list_company": list_company}
|
setting.py
| TEMPLATE_CONTEXT_PROCESSORS = (
"[...]",
"app.home.context_processors.company_select",
)
|
La vue principale
| {% for company in list_company %}
<option>ok</option>
<option>{{ company.name }}</option>
{% endfor %}
|
PS:
Avec ce rajout ça fonctionne, mais faudrait retoucher alors toutes les vues?
view.py d'une app quelconque
| from django.template import RequestContext
[...]
def aDef(request):
return render_to_response([...], context_instance=RequestContext(request))
|