Guest User

Untitled

a guest
Jun 4th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2.  
  3. from django.shortcuts import get_object_or_404
  4. from django.views.generic.detail import DetailView
  5. from django.views.generic.list import ListView
  6. from catalog.models import CatalogFolder, CatalogItem
  7.  
  8. def get_main_folder():
  9.  
  10. """
  11. Возвращает раздел, который будет отображаться по ссылке "Продукция" на главной странице
  12. """
  13.  
  14. return CatalogFolder.objects.filter(display = True).order_by('id')[0]
  15.  
  16. class ItemListView(ListView):
  17.  
  18. """
  19. Представление для раздела каталога
  20. """
  21.  
  22. context_object_name = "item_list"
  23. template_name = "catalog/item_list.html"
  24.  
  25. def get_queryset(self):
  26.  
  27. if 'pk' not in self.kwargs:
  28. return CatalogItem.objects.filter(parent=get_main_folder().id)
  29. else:
  30. self.parent = get_object_or_404(CatalogFolder, pk=self.kwargs['pk'])
  31. return CatalogItem.objects.filter(parent=self.parent)
  32.  
  33. def get_context_data(self, **kwargs):
  34.  
  35. context = super(ItemListView, self).get_context_data(**kwargs)
  36.  
  37. if 'pk' not in self.kwargs:
  38. context['current_folder'] = get_object_or_404(CatalogFolder, pk=get_main_folder().id)
  39. else:
  40. context['current_folder'] = get_object_or_404(CatalogFolder, pk=self.kwargs['pk'])
  41. return context
  42.  
  43. class ItemDetailView(DetailView):
  44.  
  45. """
  46. Представление для наименования каталога
  47. """
  48.  
  49. context_object_name = "item_detail"
  50. template_name = "catalog/item_detail.html"
  51.  
  52. def get_queryset(self):
  53. return CatalogItem.objects.all()
Add Comment
Please, Sign In to add comment