refactor products views and urls

remotes/origin/HEAD
Max Yakovenko 8 years ago
parent 7ad166c52a
commit 33d89bfde2
  1. 6
      products/urls.py
  2. 66
      products/views.py

@ -20,9 +20,9 @@ from .models import ProductCategory
urlpatterns = [
re_path(r'^search/$', views.ProductSearchView.as_view(), name='search')
#url(r'^products/(?P<product_id>\w+)/$', views.products, name='products'),
# url(r'^$', producerslist, name='ProductList'),
re_path(r'^product/category/search/$', views.ProductSearchView.as_view(), name='product_search'),
re_path(r'^product/(?P<product_slug>\w+)/$', views.ProductDetailsView.as_view(), name='product_details'),
re_path(r'^product/category/list/$', views.ProductCategoryListView.as_view(), name='product_category'),
# Uncomment for elasticsearch

@ -1,24 +1,69 @@
from django.shortcuts import render, get_list_or_404, get_object_or_404
from django.contrib import auth
from django.http import Http404
import json
import decimal
from django.views.generic import ListView
from django.conf import settings
from django.shortcuts import render
from django.contrib import auth
from django.utils.translation import ugettext_lazy as _
from django.views.generic import ListView, DetailView
from .models import (
Manufacturer,Product,ProductCategory
)
from .forms import *
# from cart.forms import CartAddProductForm
from .utils import *
# from cart.cart import Cart
from .models import *
class ManufactureListView(ListView):
model = Manufacturer
template_name = 'products/manufacture_list.html'
class ProductDetailsView(DetailView):
model = Product
template_name = 'products/product_detail.html'
class ProductSearchView(ListView):
model = Product
template_name = 'products/search.html'
template_name = 'products/product_search.html'
context_object_name = 'products'
paginate_by = settings.DEFAULT_PAGE_AMMOUNT
title = _('Поиск товара')
def get_queryset(self):
queryset = super().get_queryset()
if self.kwargs.get('name'):
queryset = queryset.filter(name__icontains=self.kwargs.get('name'))
return queryset
def get_context_data(self, *, object_list=None, **kwargs):
context = super().get_context_data(object_list=object_list, **kwargs)
context['title'] = self.title + ":" + self.request.GET.get('name', '')
return context
class ProductListView(ListView):
model = Product
template_name = 'products/product_list.html'
context_object_name = 'products'
paginate_by = settings.DEFAULT_PAGE_AMMOUNT
title = _('Список товаров')
def get_queryset(self):
queryset = super().get_queryset()
return queryset.filter(name__icontains=self.request)
return queryset
def get_context_data(self, *, object_list=None, **kwargs):
context = super().get_context_data(object_list=object_list, **kwargs)
context['title'] = self.title
return context
class ProductCategoryListView(ListView):
model = ProductCategory
template_name = 'products/product_category_list.html'
# Uncomment for elasticsearch
@ -31,6 +76,7 @@ def serialize_decimal(obj):
return str(obj)
return json.JSONEncoder.default(obj)
def producerslist(request):
username = auth.get_user(request).username
# category = None

Loading…
Cancel
Save