Почему моя функция не работает в 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)

Надеюсь, это поможет

Вернуться на верх