При изменении цены в приложении ecommerce путем выбора другого размера я получаю ошибку неподдерживаемого типа операнда, пожалуйста, решите эту проблему
неподдерживаемый тип(ы) операнда(ов) для +: 'int' и 'str' Внутренняя ошибка сервера: /product/t-shirts/ Traceback (последний последний вызов): Файл "C:\Python311\Lib\site-packages\django\core\handlers\exception.py", строка 55, in inner response = get_response(request) ^^^^^^^^^^^^^^^^^^^^^ Файл "C:\Python311\Lib\site-packages\django\core\handlers\base.py", строка 204, in _get_response self.check_response(response, callback) Файл "C:\Python311\Lib\site-packages\django\core\handlers\base.py", строка 332, in check_response raise ValueError( ValueError: Представление products.views.get_product не вернуло объект HttpResponse. Вместо этого оно вернуло None. [20/Jul/2024 12:48:11] "GET /product/t-shirts/?size=XL HTTP/1.1" 500 68697 неподдерживаемые типы операндов для +: 'int' и 'str' Внутренняя ошибка сервера: /product/t-shirts/
Traceback (most recent call last):
Файл "C:\Python311\Lib\site-packages\django\core\handlers\exception.py", строка 55, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\site-packages\django\core\handlers\base.py", line 204, in _get_response
self.check_response(response, callback)
File "C:\Python311\Lib\site-packages\django\core\handlers\base.py", line 332, in check_response
raise ValueError(ValueError: The view products.views.get_product didn't return an HttpResponse object. It returned None instead.
[20/Jul/2024 12:48:11] "GET /product/t-shirts/?size=XL HTTP/1.1" 500 68697
"это моя страница products.models"
from django.db import models
from base.models import BaseModel
from django.utils.text import slugify
class Category(BaseModel):
category_name=models.CharField(max_length=100)
slug=models.SlugField(unique=True ,null=True , blank=True)
category_image=models.ImageField(upload_to="categories")
def save(self,*args,**kwargs):
self.slug=slugify(self.category_name)
super(Category,self).save(*args,**kwargs)
def __str__(self) ->str:
return self.category_name
class ColorVariant(BaseModel): color_name= models.CharField(max_length=100)
price= models.CharField(max_length=100)
def __str__(self) ->str:
return self.color_name
class SizeVariant(BaseModel): size_name= models.CharField(max_length=100)
price= models.CharField(max_length=100)
def __str__(self) ->str:
return self.size_name
class Product(BaseModel): product_name=models.CharField(max_length=100)
slug=models.SlugField(unique=True ,null=True , blank=True)
categorys=models.ForeignKey(Category, on_delete=models.CASCADE,related_name="products",blank=False,
null=True) price=models.IntegerField()
products_description=models.TextField()
color_variant=models.ManyToManyField(ColorVariant, blank=True)
size_variant=models.ManyToManyField(SizeVariant, blank=True)
def save(self,*args,**kwargs):
self.slug=slugify(self.product_name)
super(Product,self).save(*args,**kwargs)
def __str__(self) ->str:
return self.product_nam
def get_product_price_by_size(self,size):
return self.price + str(SizeVariant.objects.get(size_name=size).price)
class ProductImage(BaseModel):
products=models.ForeignKey(Product, on_delete=models.CASCADE,related_name="product_images")
image=models.ImageField(upload_to="product")
В модальном окне продукта попробуйте обновить метод класса -
Это -
def get_product_price_by_size(self, size):
return self.price + str(SizeVariant.objects.get(size_name=size).price)
к этому -
def get_product_price_by_size(self, size):
return str(self.price) + str(SizeVariant.objects.get(size_name=size).price)