123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- from django.contrib.auth.mixins import LoginRequiredMixin
- from django.contrib.auth.views import LoginView, LogoutView
- from django.shortcuts import redirect
- from django.urls import reverse_lazy
- from django.views.generic import CreateView, DetailView
- from django.views.generic.list import ListView
- from .forms import *
- from django.db.models import Q
- class IndexView(ListView):
- model = Product
- template_name = 'index.html'
- context_object_name = 'products'
- def get_queryset(self):
- return Product.objects.order_by('-date_create', '-time_create')[:5]
- class RegisterView(CreateView):
- template_name = 'user/register.html'
- form_class = RegisterForm
- success_url = reverse_lazy('login')
- class LoginView(LoginView):
- template_name = 'user/login.html'
- success_url = reverse_lazy('index')
- class BBLogoutView(LogoutView):
- template_name = 'user/logout.html'
- class ProfileBasket(LoginRequiredMixin, ListView):
- model = Basket
- context_object_name = 'baskets'
- template_name = 'user/profile.html'
- def add_to_basket(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, count=1)
- return redirect('profile')
- else:
- basket = baskets.first()
- basket.count += 1
- basket.save()
- return redirect('profile')
- class ProductsAllView(ListView):
- model = Product
- template_name = 'all_products.html'
- context_object_name = 'products'
- def get_queryset(self):
- return Product.objects.order_by('-date_create', '-time_create')
- class ProductDetail(DetailView):
- model = Product
- template_name = 'product_detail.html'
- class SearchResultsView(ListView):
- model = Product
- template_name = 'search.html'
- def get_queryset(self):
- query = self.request.GET.get("q")
- object_list = Product.objects.filter(
- Q(title__icontains=query)
- )
- return object_list
|