Подсчитывать количество раз, когда заказ был одобрен
У меня есть приложение, в котором пользователи делают заказ, но каждый раз, когда заказ сделан, он должен быть одобрен, прежде чем он может быть выдан или продан. Есть ли способ подсчитать, сколько раз заказ был одобрен?
модели
class Order(models.Model):
category = models.ForeignKey(Category, on_delete=models.CASCADE, null=True)
pro_name = models.ForeignKey(Product, on_delete=models.CASCADE, null=True,related_name='product')
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
order_quantity = models.PositiveIntegerField(null=True)
order_status = models.IntegerField(default=0)
timestamp = models.DateTimeField(auto_now_add=False, auto_now=True, null=True)
views.py
def order_approve(request, order_id):
order = Order.objects.get(id=order_id)
order.order_status = 1
order.save()
return redirect('dashboard-order')
Я буду благодарен за ваш ответ. Спасибо
Если вы хотите получить общее количество одобренных заказов, вы можете просто написать такой запрос:
count = Order.objects.filter(order_status=1).count()
Если, с другой стороны, вы хотите подсчитать, сколько раз один заказ был отмечен как одобренный (из вопроса не ясно, какой из двух вариантов вы хотите), добавьте счетчик в модель и обновляйте его в представлении:
models.py
class Order(models.Model):
category = models.ForeignKey(Category, on_delete=models.CASCADE, null=True)
pro_name = models.ForeignKey(Product, on_delete=models.CASCADE, null=True,related_name='product')
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
order_quantity = models.PositiveIntegerField(null=True)
order_status = models.IntegerField(default=0)
approved_count = models.IntegerField(default=0)
timestamp = models.DateTimeField(auto_now_add=False, auto_now=True, null=True)
views.py
from django.db.models import F
def order_approve(request, order_id):
order = Order.objects.get(id=order_id)
order.order_status = 1
order.approved_count = F('approved_count') + 1
order.save()
return redirect('dashboard-order')