def sum_of_quantity(self, request=None, calc_or_show='show', currency=980, ): """ Возвращаем значение суммы количества * на цену товара в текущей валюте сайта """ from apps.product.views import get_product product = get_product(product_pk=self.product_id, product_url=None, ) price = product.get_price(request, price=None, calc_or_show='show', currency=currency, ) # price=self.price, """ Расчитываем цену товара. """ from decimal import Decimal price = self.quantity * (Decimal(price, ) / product.price_of_quantity) if calc_or_show == 'calc': # Если нас просят не просто показать, а посчитать цену товара? if product.is_availability == 2: # Если товар доступен под заказ? """ Если товар доступен под заказ? Показываем 50% стоимости. """ price = price/2 # Берём 50% от стоимости return u'%5.2f'.replace(',', '.', ) % price # .replace(',', '.', ).strip()
def context(request, ): # from apps.product.models import Category # try: # all_categories_ = Category.manager.published() # except Category.DoesNotExist: # all_categories_ = None # ajax_resolution_ = request.session.get(u'ajax_resolution', True, ) print 'Django_Context_Processor:' print 'print request: ', request if str(request, ).find('WSGIRequest:', ): url = str(request, ).split("'")[1] print url try: value = url.decode('cp1252').encode('utf8') except: pass else: try: print 'cp1252 -1', type(value, ), value except: print 'cp1252 -1', type(value, ), 'print value: Error' try: value = url.encode('cp1252') except: pass else: try: print 'cp1252 -2', type(value, ), value except: print 'cp1252 -2', type(value, ), 'print value: Error' try: url = dict(request) print 'dict: ', url url = url['WSGIRequest'] except Exception as e: print 'Exception: ', e except TypeError as e: print 'TypeError: ', e print 'WSGIRequest: ', url url = request.get_full_path() from django.shortcuts import redirect # return redirect(to=url) from django.utils.encoding import uri_to_iri url = uri_to_iri(url, ) url = url.encode('cp1252', ) print 'Next URL: request.get_full_path: ', url from django.core.urlresolvers import resolve, Resolver404 view, args, kwargs = resolve(url, ) print view, args, kwargs from apps.product.views import show_product if 'view' in locals() and view == show_product: try: product_pk = int(kwargs[u'id'], ) except ValueError: pass else: print product_pk, kwargs[u'product_url'].encode('utf8') from apps.product.views import get_product """ Убираем НАХРЕН проверку именования товара product_url """ # product = get_product(product_pk=product_pk, product_url=kwargs[u'product_url'], ) product = get_product(product_pk=product_pk, ) print product #return redirect(to=product.get_absolute_url(), ) #return redirect(to='http://keksik.com.ua%s' % url, ) return dict(url=product.get_absolute_url(), )
def context(request): try: static_pages = Static.objects.all() except Static.DoesNotExist: static_pages = None try: currency = Currency.objects.all() except Currency.DoesNotExist: currency = None """ Проверяем session на наличие currency pk """ currency_pk = request.session.get(u'currency_pk', None, ) if currency_pk: try: currency_pk = int(currency_pk, ) except ValueError: request.session[u'currency_pk'] = 1 current_currency = currency.get(pk=1, ) else: try: current_currency = currency.get(pk=currency_pk, ) except Currency.DoesNotExist: current_currency = currency.get(pk=1, ) else: request.session[u'currency_pk'] = currency_pk else: request.session[u'currency_pk'] = 1 current_currency = currency.get(pk=1, ) try: slides = Slide.manager.visible() except Slide.DoesNotExist: slides = None try: categories_basement = Category.objects.basement() except Category.DoesNotExist: categories_basement = None if request.user.is_authenticated() and request.user.is_active: user_id_ = request.session.get(u'_auth_user_id', None, ) # from django.contrib.auth.models import User UserModel = get_user_model() try: user_id_ = int(user_id_, ) except ValueError: user_object = None else: user_object = UserModel.objects.get(pk=user_id_, ) else: user_object = None user_cart = get_cart_or_create(request, user_object=user_object, created=False, ) if user_cart: coupons = user_cart.Cart_child.all() """ Проверяем СПИСОК [] на пустоту """ if coupons: coupon = coupons[0] else: coupon = None else: coupon = None # sessionid_carts = Carts.objects.filter(user_obj=None, sessionid=SESSIONID_SESSION_, # order=None, account=None, package=None, ) #cartid=cartid, # except: # sessionid_carts = None # #viewed_count = viewed.count() product = None product_pk = None # from apps.product.models import Product # try: # product_count = Product.objects.count() # except Product.DoesNotExist: # pass # else: # if product_count > 0: # from random import randint # product_pk = randint(1, product_count, ) # try: # product = Product.objects.get(pk=product_pk, ) # except Product.DoesNotExist: # pass if not request.method == 'GET': print 'request.method', request.method else: if user_object: full_path = request.path """ Оказывается get_full_path() возвращает полный путь со строкой запроса в случае запроса типа GET и долбанный resolve не может её тогда обработать и вываливается с кодом 404. """ try: """ Вот где выскакивает эта ошибка """ # print 'HTTP_ACCEPT: ', request.META.get('HTTP_ACCEPT', None, ) # print 'HTTP_ACCEPT_ENCODING: ', request.META.get('HTTP_ACCEPT_ENCODING', None, ) # print 'HTTP_ACCEPT_LANGUAGE: ', request.META.get('HTTP_ACCEPT_LANGUAGE', None, ) # print 'LANG: ', request.META.get('LANG', None, ) # print 'LANGUAGE: ', request.META.get('LANGUAGE', None, ) # print 'PYTHONIOENCODING: ', request.META.get('PYTHONIOENCODING', None, ) # print 'REQUEST_METHOD: ', request.META.get('REQUEST_METHOD', None, ) print 'resolve:' view, args, kwargs = resolve(full_path, ) except UnicodeDecodeError: print 'Error: ' print full_path.encode('utf8', ) except Resolver404: try: print 'request.get_full_path(): ', request.get_full_path() except: pass try: print 'Error: Resolver404 - cp1252 [2]', full_path.split('/')[2].encode('cp1252', ) print 'Error: Resolver404 - cp1252', full_path.encode('cp1252', ) except: pass try: print 'Error: Resolver404 - utf8 - cp1252', full_path.encode('utf8').encode('cp1252', ) except: pass try: print 'Error: Resolver404 - utf8', full_path.encode('utf8', ) except: print 'Error: Resolver404 - utf8', 'print value: Error' # else: # try: # print 'resolve(full_path, ) : view = ', view, ' args = ', args, ' kwargs = ', kwargs # except: # pass # try: # print 'Not error: ', request.path # except UnicodeEncodeError: # print 'Not print Not error: UniceodeEncodeError' if 'view' in locals() and view == show_product: try: product_pk = int(kwargs[u'id'], ) except ValueError: pass else: print product_pk, kwargs[u'product_url'].encode('utf8') """ Убираем НАХРЕН проверку именования товара product_url """ # product = get_product(product_pk=product_pk, product_url=kwargs[u'product_url'], ) product = get_product(product_pk=product_pk, ) sessionid = request.COOKIES.get(u'sessionid', None, ) viewed = None viewed = get_or_create_Viewed(request, int_product_pk=product_pk, product=product, user_obj=user_object, sessionid=sessionid, ) return dict(static_pages_=static_pages, currency_=currency, current_currency_=current_currency, slides_=slides, categories_basement_=categories_basement, user_cart_=user_cart, coupon_=coupon, viewed_=viewed, ) # # print type(full_path, ) # value = None # if isinstance(full_path, unicode): # try: # value = full_path.encode('us-ascii', ) # except: # print 'Not US-ASCII' # try: # value = full_path.encode('utf8') # except: # pass # else: # try: # print 'utf8', type(value, ), value # except: # print 'utf8', type(value, ), 'print value: Error' # try: # value = full_path.decode('cp866').encode('utf8') # except: # pass # else: # try: # print 'cp866', type(value, ), value # except: # print 'cp866', type(value, ), 'print value: Error' # try: # value = full_path.decode('cp1251').encode('utf8') # except: # pass # else: # try: # print 'cp1251', type(value, ), value # except: # print 'cp1251', type(value, ), 'print value: Error' # try: # value = full_path.decode('cp1252').encode('utf8') # except: # pass # else: # try: # print 'cp1252 -1', type(value, ), value # except: # print 'cp1252 -1', type(value, ), 'print value: Error' # try: # value = full_path.encode('cp1252') # except: # pass # else: # try: # print 'cp1252 -2', type(value, ), value # except: # print 'cp1252 -2', type(value, ), 'print value: Error' # #try: # # value = full_path.encode('cp1252').decode('utf8') # #except: # # pass # #else: # # print 'cp1252 -3', type(value, ), value # try: # value = full_path.encode('cp1252').encode('utf8') # except: # pass # else: # try: # print 'cp1252 -4', type(value, ), value # except: # print 'cp1252 -4', type(value, ), 'print value: Error' # #try: # # value = full_path.encode('utf8').decode('cp1252').encode('utf8') # #except: # # pass # #else: # # print 'cp1252 -5', type(value, ), value # try: # value = full_path.encode('utf8').encode('cp1252') # except: # pass # else: # try: # print 'cp1252 -6', type(value, ), value # except: # print 'cp1252 -6', type(value, ), 'print value: Error' # try: # value = full_path.decode('koi8').encode('utf8') # except: # pass # else: # try: # print 'koi8', type(value, ), value # except: # print 'koi8', type(value, ), 'print value: Error' # else: # try: # print 'ascii', type(value, ), value # except: # print 'ascii', type(value, ), 'print value: Error' # #