1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- from django.contrib.auth.mixins import LoginRequiredMixin
- from django.contrib.auth.views import LoginView, LogoutView
- from django.shortcuts import render, redirect
- from django.urls import reverse_lazy
- from django.views.generic import CreateView, ListView, DetailView
- from .forms import Register
- from .models import *
- def index(request):
- products = Product.objects.order_by("-release_date")[:5]
- context = {"products": products}
- return render(request, "home.html", context)
- class RegisterView(CreateView):
- template_name = 'user/register.html'
- form_class = Register
- success_url = reverse_lazy('index')
- class LoginView(LoginView):
- template_name = 'user/login.html'
- success_url = reverse_lazy('index')
- class LogoutView(LoginRequiredMixin, LogoutView):
- template_name = 'user/logout.html'
- class PostView(ListView):
- model = Product
- template_name = 'home.html'
- context_object_name = 'products'
- def get_queryset(self):
- return Product.objects.order_by('-release_date')[:5]
- class ProfileListView(LoginRequiredMixin, ListView):
- model = Basket
- context_object_name = 'baskets'
- template_name = 'user/profile.html'
- def basket_add(request, product_id):
- product = Product.objects.get(id=product_id)
- baskets = Basket.objects.filter(user=request.user, product=product)
- if not baskets.exists():
- Basket.objects.create(user=request.user, product=product, countProduct=1)
- return redirect('profile')
- else:
- basket = baskets.first()
- basket.countProduct += 1
- basket.save()
- return redirect('profile')
- class ProductsAll(ListView):
- model = Product
- template_name = 'Products.html'
- context_object_name = 'products'
- def get_queryset(self):
- return Product.objects.order_by('-release_date')
- class ProductDetail(DetailView):
- model = Product
- template_name = 'product_detail.html'
|