J'ai TemplateView pour la maison et sur les pages d'un site Web pour un organisateur d'événements. Maintenant, je veux inclure un modèle avec une liste des trois prochains événements dans les deux modèles comme celui-ci:Inclusion de vues génériques dans django - comment le faire de la bonne façon?
{% include "next-events.html"%}
Étant donné que ce modèle doit être inclus dans les deux pages, je pensais à écrire un ListView seulement pour les prochains événements et l'inclure dans ma maison et sur les points de vue.
class NextEventsView(ListView):
""" a preview of the next events """
queryset = Event.objects.filter(date__gte=datetime.date.today()).order_by('date')[:3]
context_object_name = 'next_events'
class HomePageView(TemplateView, NextEventsView):
template_name = "home/home.html"
class AboutPageView(TemplateView, NextEventsView):
template_name = "home/about.html"
Mais je n'ai pas entièrement compris comment la vue générique ListView obtient sa liste d'objets. Si j'inclus comme ça, je reçois l'erreur suivante:
AttributeError: 'HomePageView' object has no attribute 'object_list'
qui peut être résolu en ajoutant object_list au HomePageView, mais qui ne peut pas être la bonne solution.
Quelqu'un peut-il expliquer, comment faire une telle inclusion de la bonne façon?
Merci d'avance!
merci pour cela! – setchock