views.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from django.contrib.auth import logout
  2. from django.contrib.auth.decorators import login_required
  3. from django.contrib.auth.views import LoginView
  4. from django.shortcuts import render
  5. from django.urls import reverse_lazy
  6. from django.views import generic
  7. from django.views.generic import TemplateView, CreateView
  8. from .forms import RegisterUserForm
  9. from .models import CustUser, Product
  10. class IndexView(generic.ListView):
  11. model = Product
  12. template_name = "main/index.html"
  13. context_object_name = "products"
  14. def get_queryset(self):
  15. return Product.objects.order_by('-date')[:5]
  16. class BBLoginView(LoginView):
  17. template_name = "main/login.html"
  18. @login_required
  19. def logout_view(request):
  20. logout(request)
  21. return render(request, 'main/index.html')
  22. class RegisterUserView(CreateView):
  23. model = CustUser
  24. template_name = "main/register.html"
  25. form_class = RegisterUserForm
  26. success_url = reverse_lazy("main:login")
  27. class ProductListView(generic.ListView):
  28. model = Product
  29. template_name = "main/products.html"
  30. context_object_name = "products"
  31. class ProductDetailView(generic.DetailView):
  32. model = Product
  33. template_name = "main/product_detail.html"
  34. class ProfileListView(generic.ListView):
  35. model = CustUser
  36. template_name = "main/profile.html"