Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 23.03.2021
Сообщений: 29

Ошибка InvalidOperation at / [<class 'decimal.ConversionSyntax'>]

26.03.2022, 16:00. Показов 1952. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Трэйсбэк:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
Request Method: GET
Request URL: [url]http://127.0.0.1:8000/[/url]
 
Django Version: 4.0.3
Python Version: 3.9.4
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'shop.apps.ShopConfig',
 'cart.apps.CartConfig',
 'order.apps.OrderConfig']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']
 
 
Template error:
In template D:\Projects py\django\mafia_rekvisit\mafia\shop\templates\shop\index.html, error at line 68
   [<class 'decimal.ConversionSyntax'>]
   58 :                                     <svg class="img" width="23" height="21" viewBox="0 0 23 21" fill="none" xmlns="http://www.w3.org/2000/svg">
   59 :                                     <path id="Shape" fill-rule="evenodd" clip-rule="evenodd" d="M17.0917 7.89236L12.4495 1.00805C12.2385 0.799436 11.922 0.59082 11.6055 0.59082C11.289 0.59082 10.9725 0.695128 10.7615 1.00805L6.11927 7.89236H1.05505C0.422018 7.89236 0 8.30959 0 8.93544V9.24836L2.63761 18.949C2.84862 19.7834 3.69266 20.5136 4.6422 20.5136H18.3578C19.3073 20.5136 20.1514 19.8877 20.3624 18.949L23 9.24836V8.93544C23 8.30959 22.578 7.89236 21.945 7.89236H17.0917ZM8.44043 7.89217L11.6056 3.30263L14.7707 7.89217H8.44043ZM9.49536 14.1504C9.49536 15.2978 10.4449 16.2366 11.6055 16.2366C12.766 16.2366 13.7155 15.2978 13.7155 14.1504C13.7155 13.003 12.766 12.0643 11.6055 12.0643C10.4449 12.0643 9.49536 13.003 9.49536 14.1504Z" fill="white"/>
   60 :                                     </svg>
   61 :                                 </a>
   62 : 
   63 :                             <div class="quantity">{{ cart|length }}</div>
   64 :                             </div>
   65 : 
   66 :                             <div class="basket__info">
   67 :                                 <div class="basket__text">Корзина</div>
   68 :                                 <div class="basket__price"> {{ cart.get_total_price }}  руб.</div>
   69 :                             </div>
   70 : 
   71 :                         </div>
   72 :                     {% else %}
   73 :                         <div class="basket">
   74 :                             <div class="wrap">
   75 :                                 <svg class="img" width="23" height="21" viewBox="0 0 23 21" fill="none" xmlns="http://www.w3.org/2000/svg">
   76 :                                     <path id="Shape" fill-rule="evenodd" clip-rule="evenodd" d="M17.0917 7.89236L12.4495 1.00805C12.2385 0.799436 11.922 0.59082 11.6055 0.59082C11.289 0.59082 10.9725 0.695128 10.7615 1.00805L6.11927 7.89236H1.05505C0.422018 7.89236 0 8.30959 0 8.93544V9.24836L2.63761 18.949C2.84862 19.7834 3.69266 20.5136 4.6422 20.5136H18.3578C19.3073 20.5136 20.1514 19.8877 20.3624 18.949L23 9.24836V8.93544C23 8.30959 22.578 7.89236 21.945 7.89236H17.0917ZM8.44043 7.89217L11.6056 3.30263L14.7707 7.89217H8.44043ZM9.49536 14.1504C9.49536 15.2978 10.4449 16.2366 11.6055 16.2366C12.766 16.2366 13.7155 15.2978 13.7155 14.1504C13.7155 13.003 12.766 12.0643 11.6055 12.0643C10.4449 12.0643 9.49536 13.003 9.49536 14.1504Z" fill="white"/>
   77 :                                 </svg>
   78 :                             </div>
 
 
Traceback (most recent call last):
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\core\handlers\exception.py", line 55, in inner
    response = get_response(request)
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "D:\Projects py\django\mafia_rekvisit\mafia\shop\views.py", line 20, in index
    return render(request, 'shop/index.html', context)
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\shortcuts.py", line 24, in render
    content = loader.render_to_string(template_name, context, request, using=using)
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\template\loader.py", line 62, in render_to_string
    return template.render(context, request)
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\template\backends\django.py", line 62, in render
    return self.template.render(context)
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\template\base.py", line 175, in render
    return self._render(context)
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\template\base.py", line 167, in _render
    return self.nodelist.render(context)
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\template\base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\template\base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\template\base.py", line 958, in render_annotated
    return self.render(context)
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\template\loader_tags.py", line 54, in render
    result = self.nodelist.render(context)
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\template\base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\template\base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\template\base.py", line 958, in render_annotated
    return self.render(context)
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\template\defaulttags.py", line 322, in render
    return nodelist.render(context)
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\template\base.py", line 1000, in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\template\base.py", line 1000, in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\template\base.py", line 958, in render_annotated
    return self.render(context)
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\template\base.py", line 1059, in render
    output = self.filter_expression.resolve(context)
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\template\base.py", line 712, in resolve
    obj = self.var.resolve(context)
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\template\base.py", line 842, in resolve
    value = self._resolve_lookup(context)
  File "D:\Projects py\django\mafia_rekvisit\venv\lib\site-packages\django\template\base.py", line 909, in _resolve_lookup
    current = current()
  File "D:\Projects py\django\mafia_rekvisit\mafia\cart\cart.py", line 57, in get_total_price
    return sum(item['quantity'] * Decimal(item['price']) for item in self.cart.values())
  File "D:\Projects py\django\mafia_rekvisit\mafia\cart\cart.py", line 57, in <genexpr>
    return sum(item['quantity'] * Decimal(item['price']) for item in self.cart.values())
 
Exception Type: InvalidOperation at /
Exception Value: [<class 'decimal.ConversionSyntax'>]
models.py

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
from django.db import models
from django.urls import reverse
 
 
class Categories(models.Model):
    name = models.CharField(max_length=60, blank=False)
    slug = models.SlugField(max_length=100, unique=True)
 
    def get_absolute_url(self):
        return reverse('shop:catalog', kwargs={'cat_slug': self.slug})
 
    class Meta:
        ordering = ('-name', )
        verbose_name = 'Категория'
        verbose_name_plural = 'Категории'
 
    def __str__(self):
        return self.name
 
 
class Products(models.Model):
    cat = models.ForeignKey(Categories, on_delete=models.CASCADE, related_name='products')
    name = models.CharField(max_length=60, blank=False)
    photo = models.ImageField(upload_to='products/%Y/%m/%d', blank=True)
    price = models.DecimalField(decimal_places=2, max_digits=10)
    sale = models.DecimalField(decimal_places=2, max_digits=10)
    slug = models.SlugField(max_length=100, unique=True)
    available = models.BooleanField(default=True)
    upload = models.DateTimeField(auto_now_add=True)
    update = models.DateTimeField(auto_now=True)
    description = models.TextField()
 
    class Meta:
        verbose_name = 'Товар'
        verbose_name_plural = 'Товары'
        ordering = ('update', )
 
    def get_absolute_url(self):
        return reverse('shop:detail', kwargs={'products_slug': self.slug})
 
    def __str__(self):
        return self.name
 
    def new_price(self):
        return self.price - self.sale
cart.py

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from decimal import Decimal
 
from mafia.settings import CART_SESSION_ID
from shop.models import Products
 
 
class Cart(object):
 
    def __init__(self, request):
 
        self.session = request.session
        cart = self.session.get(CART_SESSION_ID)
        if not cart:
            cart = self.session[CART_SESSION_ID] = {}
        self.cart = cart
 
    def __iter__(self):
        ids = self.cart.keys()
        products = Products.objects.filter(id__in=ids)
 
        cart = self.cart.copy()
 
        for product in products:
            cart[str(product.id)]['product'] = product
 
        for item in cart.values():
            item['price'] = Decimal(item['price'])
            item['total_price'] = item['price'] * item['quantity']
            yield item
 
    def add(self, product, quantity=1, update_quantity=False):
        product_id = str(product.id)
        if product_id not in self.cart:
            self.cart[product_id] = {'quantity': 0,
                                     'price': str(product.price)}
 
        if update_quantity:
            self.cart[product_id]['quantity'] = quantity
        else:
            self.cart[product_id]['quantity'] += quantity
 
        self.save()
 
    def __len__(self):
        return sum(item['quantity'] for item in self.cart.values())
 
    def save(self):
        self.session.modified = True
 
    def remove(self, product):
        product_id = str(product.id)
        if product_id in self.cart:
            del self.cart[product_id]
        self.save()
 
    def get_total_price(self):
        return sum(item['quantity'] * Decimal(item['price']) for item in self.cart.values())
 
    def clear(self):
        del self.session[CART_SESSION_ID]
        self.save()
cart/views.py

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from django.shortcuts import render, get_object_or_404, redirect
from django.views.decorators.http import require_POST
 
from .cart import Cart
from .forms import CartAdd
from shop.models import Products
 
 
@require_POST
def cart_add(request, cloth_id):
    cart = Cart(request)
    product = get_object_or_404(Products, id=cloth_id)
    form = CartAdd(request.POST)
    if form.is_valid():
        cd = form.cleaned_data
        cart.add(product=product,
                 quantity=cd['quantity'],
                 update_quantity=cd['update'])
    return redirect('cart:cart_detail')
 
 
def cart_remove(request, cloth_id):
    cart = Cart(request)
    product = get_object_or_404(Products, id=cloth_id)
    cart.remove(product)
    return redirect('cart:cart_detail')
 
 
def cart_detail(request):
    cart = Cart(request)
    form = CartAdd()
    return render(request, 'cart/basket.html', {'cart': cart, 'form': form})
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.03.2022, 16:00
Ответы с готовыми решениями:

Что выгодней: (decimal,decimal) или decimal[]
Что выгоднее для памяти и производительности: создание кортежей (decimal,decimal) или массивов decimal? Предполагается большое количество. ...

Ошибка Cannot convert from 'ref decimal' to 'ref decimal?
Здравствуйте подскажите пожалуйста почему в строке this.allTuriPoCeneTableAdapter.FillBy(this.turfirmaDataSet.AllTuriPoCene, ref Cena); ...

Не работает запрос с одинаковыми типами данных c# decimal, SQL Server Decimal(18,2)
Здравствуйте, не понимаю почему не проходит запрос на бд, с одинаковыми типами данныхDecimal(18,2) число 1000,00 проходит, а 1000,35...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.03.2022, 16:00
Помогаю со студенческими работами здесь

Непонятная ошибка: Exception class EClassNotFound with message 'Class TLabeledEdit not found'
Когда написал среду в Делфи для БД Access то при запуске выдает такую ошибку. project Project.exe raised exception class...

Ошибка The same field name is serialized multiple times in the class or its parent class
Добрый день, я не так давно перешел с Java на C#, если не сложно помогите разобраться в коде на C# в Unity. интерфейс public...

Ошибка: exception class EClassNotFound with message 'Class TADOTable not found'
Аааа...Дело было так. Хотела сохранить проект,нажала save as,и только потом поняла что я дебил.Билдер закрыла,программу...

Ошибка: C++ Builder 6 Project Project1.exe raised exception class EClassNotFound with message 'Class TImage not found'
Здравствуйте. Ошибка: C++ Builder 6 Project Project1.exe raised exception class EClassNotFound with message 'Class TImage not found'. ...

Ошибка E2333: Class member declared outside its class
Доброго времени суток,подскажите в чём дело? //--------------------------------------------------------------------------- #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru