views.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. from django.contrib.auth.views import LoginView
  2. from django.shortcuts import render, redirect
  3. from django.contrib.auth import authenticate, login, logout
  4. from django.contrib.auth.forms import UserCreationForm
  5. from django.contrib.auth.decorators import login_required
  6. from .forms import OrderForm
  7. from .models import Product, Order
  8. def home(request):
  9. return render(request, 'shop/home.html')
  10. def search_result(request):
  11. return render(request, 'shop/search_result.html')
  12. def register(request):
  13. if request.method == 'POST':
  14. form = UserCreationForm(request.POST)
  15. if form.is_valid():
  16. user = form.save()
  17. login(request, user)
  18. return redirect('home')
  19. else:
  20. form = UserCreationForm()
  21. return render(request, 'shop/register.html', {'form': form})
  22. @login_required
  23. def profile(request):
  24. # Ваш код для страницы профиля
  25. return render(request, 'shop/profile.html')
  26. login = LoginView.as_view(template_name='shop/login.html')
  27. def service(request):
  28. products = Product.objects.all()
  29. return render(request, 'shop/service.html', {'products': products})
  30. def product_detail(request, product_id):
  31. product = Product.objects.get(pk=product_id)
  32. return render(request, 'shop/product_detail.html', {'product': product})
  33. @login_required
  34. def order(request, product_id):
  35. product = Product.objects.get(pk=product_id)
  36. if request.method == 'POST':
  37. form = OrderForm(request.POST)
  38. if form.is_valid():
  39. order = form.save(commit=False)
  40. order.user = request.user
  41. order.product = product
  42. order.save()
  43. return redirect('profile')
  44. else:
  45. form = OrderForm()
  46. return render(request, 'shop/order.html', {'form': form, 'product': product})
  47. def logout_view(request):
  48. logout(request)
  49. return redirect('home')
  50. def login_view(request):
  51. if request.method == 'POST':
  52. username = request.POST['username']
  53. password = request.POST['password']
  54. user = authenticate(request, username=username, password=password)
  55. if user is not None:
  56. login(request, user)
  57. return redirect('home')
  58. return render(request, 'shop/login.html')