Пытаюсь обновить мою корзину с помощью django, но не знаю, что я делаю не так.

Django version = 4.0.4
Python == 3.9.12
os = osx

вот мой шаблон корзины, где я использую тег шаблона для получения доступа к данным экземпляра заказа для его рендеринга

<div class="block-cart action">
<a class="icon-link" href="{% url 'core:cart' %}">
<i class="flaticon-shopping-bag"></i>
<span class="count">{{ request.user|cart_item_count }}</span>
<span class="text">
<span class="sub">Carrito:</span>
Gs.{{ request.user|cart_total_count }} </span>
</a>
<div class="cart">
    <div class="cart__mini">
        <ul>
            <li>
              <div class="cart__title">
                <h4>Carrito</h4>
                <span>( {{ request.user|cart_item_count }} Item en el carrito)</span>
              </div>
            </li>
            {% if request.user|cart_total_items != 0 %}
            {% for order_item in request.user|cart_total_items %}
            <li>
                <div class="cart__item d-flex justify-content-between align-items-center">
                  <div class="cart__inner d-flex">
                    <div class="cart__thumb">
                      <a href="product-details.html">
                        <img src="{{ order_item.item.image.url }}" alt="">
                      </a>
                    </div>
                    <div class="cart__details">
                     
                      <h6><a href="product-details.html">{{ order_item.item.title }}</a></h6>
                      <div class="cart__price">
                        <span>Gs. {% if order_item.item.discount_price|stringformat:".0f" %} {{ order_item.item.discount_price|stringformat:".0f" }} 
                            {% else %} {{ order_item.item.price|stringformat:".0f" }} 
                            {% endif %}  x  {{order_item.quantity}}</span>
                      </div>
                    </div>
                  </div>
                  <div class="cart__del">
                      <a href="{% url 'core:remove-from-cart-from-home' order_item.item.id%}"><i class="fal fa-times"></i></a>
                  </div>
                </div>
              </li>
              {% endfor %}
              {%else%}
             
              {% endif %}
            <li>
              <div class="cart__sub d-flex justify-content-between align-items-center">
                <h6>Subtotal</h6>
                <span class="cart__sub-total">Gs.{{ request.user|cart_total_count }}</span>
              </div>
            </li>
            <li>
                <a href={% url 'core:cart' %} class="wc-cart mb-10">Ver Carrito</a>
                <a href={% url 'core:checkout' %}  class="wc-checkout">Finalizar Compra</a>
            </li>
        </ul
    </div>
</div>

здесь находится тег пользовательского шаблона

@register.filter
def cart_item_count(user):
if user.is_authenticated:
    qs = Order.objects.filter(user=user, order_completed=False)
    qs = qs.last()
    if qs.order_completed == False:
        print(qs.order_completed)
        return qs.items.count()
    else:
       return 0
return 0

вот моя модель

class Order(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL,
                         on_delete=models.CASCADE)
company_name = models.CharField(max_length=100, null=True, blank=True)
items = models.ManyToManyField(OrderItem)
start_date = models.DateTimeField(auto_now_add=True)
direction = models.CharField(max_length=100, blank=True, null=True)
city = models.CharField(max_length=200, null=True, blank=True)
phone = models.CharField(max_length=200, null=True, blank=True)
received = models.BooleanField(default=False)
order_completed = models.BooleanField(default=False)


class Meta:
    verbose_name = "Pedido"
    verbose_name_plural = "Pedidos"
    ordering = ['-id']
   

def __str__(self):
    return self.user.username

def get_total(self):
    total = 0
    for order_item in self.items.all():
        total += order_item.get_total_item_price()

    return total

Здесь мой вид кассы

class CheckoutView(View):
def get(self, *args, **kwargs):
    try:
        order = Order.objects.get(user=self.request.user, order_completed=False)
        form = CheckoutForm()
        context = {
            'form': form, 
            'order': order,
        }
        order.save()
        return render(self.request, "v2/checkout.html", context)
    except ObjectDoesNotExist:
        messages.info(self.request, "Usted no tiene un pedido activo")
        return redirect("core:checkout")

def post(self, *args, **kwargs):
    form = CheckoutForm(self.request.POST or None)

    try:
        order = Order.objects.get(user=self.request.user, order_completed=False)
        
      
        if form.is_valid():
            order = form.save(commit=False)
            order.order_completed = True
            order.user = self.request.user
            order.save() 
            return HttpResponseRedirect('success')
    except ObjectDoesNotExist:
        messages.warning(self.request, "Usted no posee ningún pedido aun")
        return redirect("core:cart")
    return HttpResponseRedirect('v2/checkout')

что я пытаюсь сделать, когда я делаю пост форму из оформления заказа, я сохраняю заказ, меняю свойство order_completed на True, перенаправляю на страницу succes, но даже если перезагрузить страницу, значение моей корзины все еще с последним заказом, даже если попытаться отфильтровать его по этому свойству

вот мой интерфейс администратора из моей модели заказа перед отправкой POST order model  before the POST

Вот после POST

after checkout POST

здесь, когда я перехожу на страницу успешного перенаправления, предполагается, что я должен увидеть свою корзину пустой из-за тега шаблона фильтра, но мой заказ все еще со старой информацией

my cart after the checkout POST

даже если я перезагружаю очищая кэш все равно не так, что я делаю не так?, что является правильным способом сделать это?

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