Проблема с передачей параметра размера из JavaScript в серверную часть DjangoPython

Программы на Python
Anonymous
Проблема с передачей параметра размера из JavaScript в серверную часть Django

Сообщение Anonymous »

Я столкнулся с проблемой при передаче параметра «размер» из моей функции JavaScript в серверную часть Django. Вот соответствующий фрагмент кода из моего представления Django:

Код: Выделить всё

def get_product(request, slug):
try:
product = Product.objects.get(slug=slug)

if request.GET.get('size'):
size = request.GET.get('size')
print(size)

return render(request, "core/product_detail.html")

except Exception as e:
print(e)
А вот функция JavaScript:

Код: Выделить всё

function get_correct_price(size) {
console.log(size);
window.location.href = window.location.pathname + `?size=${size}`;
}

В моем шаблоне HTML я вызываю функцию JavaScript с параметром размера:

Код: Выделить всё

{{ s.name }}
Однако, когда я нажимаю кнопку, параметр размера, похоже, не передается на серверную часть. Я проверил, что функция JavaScript вызывается, и параметр размера правильно регистрируется в консоли.
Не могли бы вы помочь мне определить, почему параметр размера не принимается в бэкэнд? Любые идеи или предложения будут с благодарностью приняты. Спасибо!
urls.py:

Код: Выделить всё

path("products/",product_list_view,name="product_list"),
path("product//",product_detail_view,name="product_detail"),
path("product//",get_product,name="product_detail"),
В моем файле models.py:

Код: Выделить всё

class Size(models.Model):
name=models.CharField(max_length=100)
code= models.CharField(max_length=50,blank=True,null=True)
price = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)

def __str__(self):
return self.name
class Product(models.Model):
pid=ShortUUIDField(length=10,max_length=100,prefix="prd",alphabet="abcdef")

user=models.ForeignKey(CustomUser, on_delete=models.SET_NULL ,null=True)
cagtegory=models.ForeignKey(Category, on_delete=models.SET_NULL ,null=True,related_name="category")
vendor=models.ForeignKey(Vendor, on_delete=models.SET_NULL,null=True,related_name="product")
color=models.ManyToManyField(Color,blank=True)
size=models.ManyToManyField(Size,blank=True)

title=models.CharField(max_length=100,default="Apple")
image=models.ImageField(upload_to=user_directory_path,default="product.jpg")
description=RichTextUploadingField(null=True, blank=True,default="This is a product")

price = models.DecimalField(max_digits=10, decimal_places=2, default=1.99)
old_price = models.DecimalField(max_digits=10, decimal_places=2, default=2.99)

specifications=RichTextUploadingField(null=True, blank=True)

tags=TaggableManager(blank=True)

product_status=models.CharField(choices=STATUS, max_length=10,default="In_review")

status=models.BooleanField(default=True)
in_stock=models.BooleanField(default=True)
featured=models.BooleanField(default=False)
digital=models.BooleanField(default=False)

sku=ShortUUIDField(length=10,max_length=100,prefix="sku",alphabet="abcdef")

date=models.DateTimeField(auto_now_add=True)
updated=models.DateTimeField(null=True,blank=True)

class Meta:
verbose_name_plural="Products"

def product_image(self):
return mark_safe('
[img]%s[/img]
'%(self.image.url))

def __str__(self):
return self.title
def get_percentage(self):
new_price=((self.old_price-self.price)/self.old_price)*100
return new_price
Короче:
Я просто хочу, чтобы http://127.0.0.1:8000/product/prdeeffea ... ize=15inch из URL-адреса, который он должен напечатать 15 дюймов это


Подробнее здесь: https://stackoverflow.com/questions/782 ... go-backend

Вернуться в «Python»