views.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. from django.contrib.auth.models import User
  2. from django.http import JsonResponse
  3. from django.urls import reverse_lazy
  4. from .models import Product, Manufacturer
  5. from django.views import generic
  6. from django.shortcuts import render
  7. from django.contrib.auth.views import LogoutView
  8. from django.views.generic import CreateView
  9. from .forms import RegisterUserForm
  10. class ProductDetailView(generic.DetailView):
  11. model = Product
  12. class ProductListView(generic.ListView):
  13. model = Product
  14. def index(request):
  15. num_product=Product.objects.all().count()
  16. num_manufacturer=Manufacturer.objects.count()
  17. return render(
  18. request,
  19. 'index.html',
  20. context={'num_product':num_product, 'num_manufacturer':num_manufacturer},
  21. )
  22. def login(request):
  23. return render(request, 'registration/login.html')
  24. def registration(request):
  25. return render(request, 'registration.html')
  26. def logout(request):
  27. return render(request, 'logout.html')
  28. class RegisterView(CreateView):
  29. template_name = 'registration.html'
  30. form_class = RegisterUserForm
  31. success_url = reverse_lazy('login')
  32. def validate_username(request):
  33. username = request.GET.get('username', None)
  34. response = {
  35. 'is_taken': User.objects.filter(username__iexact=username).exists()
  36. }
  37. return JsonResponse(response)
  38. class BBLogoutView(LogoutView):
  39. template_name = 'logout.html'
  40. success_url = reverse_lazy('index')