views.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. from django.contrib.auth.decorators import login_required
  2. from django.shortcuts import render, get_object_or_404
  3. from django.urls import reverse_lazy
  4. from django.views import generic
  5. from django.shortcuts import HttpResponseRedirect
  6. from django.contrib.auth import logout
  7. from .models import *
  8. from .forms import *
  9. # Create your views here.
  10. class Main(generic.ListView):
  11. model = Product
  12. context_object_name = 'products'
  13. template_name = 'mainapp/index.html'
  14. def get_queryset(self):
  15. return Product.objects.all()[:5]
  16. @login_required
  17. def profile(request):
  18. order = Order.objects.filter(user=request.user)
  19. context = {
  20. "orders": order,
  21. }
  22. return render(request, 'mainapp/profile.html', context)
  23. class ServiceList(generic.ListView):
  24. model = Product
  25. context_object_name = 'products'
  26. template_name = 'mainapp/services.html'
  27. def get_queryset(self):
  28. return Product.objects.all()
  29. def service_detail(request, id):
  30. product = get_object_or_404(Product, id=id)
  31. if request.method == 'POST':
  32. form = OrderForm(request.POST)
  33. if form.is_valid():
  34. instance = form.save(commit=False)
  35. instance.user = request.user
  36. instance.product_id = id
  37. instance.save()
  38. else:
  39. form = OrderForm(initial={'user': request.user.pk, 'product': id})
  40. return render(request, "mainapp/service_detail.html", {'product': product, 'form': form})
  41. class RegisterView(generic.CreateView):
  42. model = CustomUser
  43. form_class = RegisterForm
  44. template_name = 'mainapp/register.html'
  45. success_url = reverse_lazy('login')
  46. def logoutUser(request):
  47. logout(request)
  48. return HttpResponseRedirect('/')