views.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. from django.shortcuts import render
  2. from django.views.generic import DetailView, ListView
  3. from django.views.generic.base import TemplateView
  4. from django.views.generic.list import MultipleObjectMixin
  5. from .models import Game, GameSystem, Genre, Developer, Publisher
  6. class GameList(ListView):
  7. model = Game
  8. paginate_by = 20
  9. queryset = Game.objects.order_by("-created")[:20]
  10. class GameDetail(DetailView):
  11. model = Game
  12. class GamePlayDetail(DetailView):
  13. template_name = "games/game_play_detail.html"
  14. model = Game
  15. class GameSystemDetail(DetailView, MultipleObjectMixin):
  16. model = GameSystem
  17. paginate_by = 20
  18. def get_context_data(self, **kwargs):
  19. object_list = Game.objects.filter(game_system=self.get_object())
  20. context = super(GameSystemDetail, self).get_context_data(
  21. object_list=object_list, **kwargs
  22. )
  23. return context
  24. class GenreDetail(DetailView, MultipleObjectMixin):
  25. model = Genre
  26. paginate_by = 20
  27. def get_context_data(self, **kwargs):
  28. object_list = Game.objects.filter(genre=self.get_object())
  29. context = super(GenreDetail, self).get_context_data(
  30. object_list=object_list, **kwargs
  31. )
  32. return context
  33. class PublisherDetail(DetailView):
  34. model = Publisher
  35. paginate_by = 20
  36. def get_context_data(self, **kwargs):
  37. object_list = Game.objects.filter(publisher=self.get_object())
  38. context = super(PublisherDetail, self).get_context_data(
  39. object_list=object_list, **kwargs
  40. )
  41. return context
  42. class DeveloperDetail(DetailView):
  43. model = Developer
  44. paginate_by = 20
  45. def get_context_data(self, **kwargs):
  46. object_list = Game.objects.filter(developer=self.get_object())
  47. context = super(DeveloperDetail, self).get_context_data(
  48. object_list=object_list, **kwargs
  49. )
  50. return context