views.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. class index(View):
  8. def get(self, request):
  9. items = Item.objects.all()[:5]
  10. return render(request, 'index.html', {'items': items})
  11. def search(request):
  12. return render(request, 'main/search.html')
  13. def services(request):
  14. return render(request, 'main/services.html')
  15. def profile(request):
  16. return render(request, 'main/profile.html')
  17. login_view = LoginView.as_view(template_name='accounts/login.html')
  18. def register(request):
  19. if request.method == "POST":
  20. form = RegisterUserForm(request.POST)
  21. if form.is_valid():
  22. user = form.save(commit=True) # создание объекта без сохранения в БД
  23. user.set_password(form.cleaned_data['password'])
  24. user.save()
  25. return render(request, 'accounts/registration_done.html')
  26. else:
  27. form = RegisterUserForm()
  28. return render(request, 'accounts/registration.html', {'form': form})
  29. def logout_view(request):
  30. logout(request)
  31. return redirect('index')
  32. def add_item(request):
  33. if request.method == "POST":
  34. form = ItemForm(request.POST, request.FILES)
  35. if form.is_valid():
  36. form.save()
  37. return redirect('index')
  38. else:
  39. form = ItemForm()
  40. return render(request, 'main/add_item.html', {'form': form})