Почему моя функция не работает в view.py в Django?
В настоящее время я работаю над сайтом электронной коммерции с Django.И я столкнулся с множеством проблем в приложении корзины & я использую фреймворк Session для функциональности корзины.Так что, пожалуйста, кто-нибудь помогите решить эту проблему.
Мое приложение onlinePizza models.py
class Product(models.Model):
product_id = models.AutoField
product= models.CharField(max_length=50)
category = models.ForeignKey(Category, default='', null=True, on_delete=models.CASCADE)
desc = models.TextField()
price = models.FloatField(max_length=10, default=0)
nonveg = models.BooleanField()
slug = models.SlugField(max_length=100)
image = models.ImageField(upload_to='onlinePizza/image', default="")
@staticmethod
def get_products_by_id(ids):
return Product.objects.filter(product_id__in=ids)
def __str__(self):
return self.product
Мое приложение cart views.py
from django.shortcuts import render, redirect
from django.views import View
from onlinePizza.models import Product
def AddCart(request):
product = request.POST.get('product')
remove = request.POST.get('remove')
cart = request.session.get('cart')
if not cart:
request.session['cart'] = {}
if cart:
quantity=cart.get(product)
if quantity:
if remove:
if quantity<=1:
cart.pop(product)
else:
cart[product]=quantity-1
else:
cart[product]=quantity+1
else:
cart[product]=1
else:
cart={}
cart[product]=1
request.session['cart']=cart
return redirect ('Menu')
def Cart(request):
ids = list(request.session.get('cart').keys())
products = Product.get_products_by_id(ids)
context={'products':products}
print(products)
return render(request , 'cart/pc_cart.html', context)
Функция корзины не работает
Это pc_cart.html, где я хочу показать товары моей корзины.
<div class="position-fixed d-flex flex-column flex-shrink-0 p-3 border mb-5 " style="width: 380px; height: 420px; border-radius: 10px; box-shadow: 1px 1px 2px #000000; background-color: #ffff; overflow-y: scroll;">
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-white text-decoration-none">
<h2 class="text-center">Your Basket</h2>
</a>
<hr>
{% for i in products %}
{{i.product}}
{% endfor %}
<hr>
<div class="d-grid text-center position-absolute bottom-0 start-50 translate-middle-x">
<a href="#" class="main-btn inline-block">CheckOut</a>
</div>
</div>
И я не могу получить товары из моей корзины
Измените свой запрос
@staticmethod
def get_products_by_id(ids):
return Product.objects.filter(product_id__in=ids)
filter -> get
@staticmethod
def get_products_by_id(ids):
return Product.objects.get(product_id=ids)
Надеюсь, это поможет