views.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. from django.shortcuts import render, redirect
  2. from .models import Item
  3. from django.views.generic.base import View
  4. from django.contrib.auth import logout
  5. from django.contrib.auth.views import LoginView
  6. from .forms import RegisterUserForm, ItemForm
  7. from django.views.generic import DetailView
  8. class index(View):
  9. def get(self, request):
  10. items = Item.objects.all()
  11. return render(request, 'index.html', {'items': items})
  12. class services(View):
  13. def get(self, request):
  14. items = Item.objects.all()
  15. return render(request, 'main/services.html', {'items': items})
  16. def profile(request):
  17. return render(request, 'main/profile.html')
  18. login_view = LoginView.as_view(template_name='accounts/login.html')
  19. def register(request):
  20. if request.method == "POST":
  21. form = RegisterUserForm(request.POST)
  22. if form.is_valid():
  23. user = form.save(commit=True) # создание объекта без сохранения в БД
  24. user.set_password(form.cleaned_data['password'])
  25. user.save()
  26. return render(request, 'accounts/registration_done.html')
  27. else:
  28. form = RegisterUserForm()
  29. return render(request, 'accounts/registration.html', {'form': form})
  30. def logout_view(request):
  31. logout(request)
  32. return redirect('index')
  33. def add_item(request):
  34. if request.method == "POST":
  35. form = ItemForm(request.POST, request.FILES)
  36. if form.is_valid():
  37. form.save()
  38. return redirect('index')
  39. else:
  40. form = ItemForm()
  41. return render(request, 'main/add_item.html', {'form': form})
  42. class DetailRequest(DetailView):
  43. model = Item
  44. template_name = 'main/detail.html'
  45. context_object_name = 'item'