31

Je suis en train de faire quelque chose comme ceci:Comment utilisez-vous get_context_data avec TemplateView dans Django

class AboutView(TemplateView): 
    template_name = 'about.html' 

    def get_context_data(self, **kwargs): 
     context = super(AboutView, self).get_context_data(**kwargs) 
     context['dahl_books'] = Books.objects.filter(author="Dahl') 

Lorsque je tente d'accéder dahl_books dans mon modèle comme celui-ci:

{% for book in dahl_books %} 

dahl_books est n'est pas disponible dans le contexte du modèle, même si Books QuerySet a renvoyé un nombre de livres différent de zéro. .... est-ce que je fais quelque chose de mal dans mon modèle ou dans get_context_data?

+0

Cette question était si extrêmement utile, je voudrais pouvoir le voter jusqu'à cent fois ... J'ai cherché des moyens d'afficher red_context_data redéfini au modèle, mais a eu tellement de mal à le trouver ... merci beaucoup! (Et je ne suis pas d'accord avec le vote serré - c'est vraiment une question). –

+0

J'ai trouvé cette nouvelle fonctionnalité intéressante: http://reinout.vanrees.org/weblog/2014/05/19/context.html – Paolo

Répondre

48

Je ne peux pas tester, mais je parie que vous avez besoin

return context 

à la fin de get_context_data :)

+0

J'ai un suivi, puis-je décliner le contexte en tant que variable de classe au lieu de local et le retourner ? – rtindru

+0

Vous devrez implémenter son utilisation en tant que variable de classe, mais vous pouvez obtenir les données de contexte comme vous le souhaitez. Il suffit de se rendre compte que django recherche get_context_data, donc vous devrez remplacer la façon dont django le cherche dans vos méthodes get et post. –

Questions connexes