Почему в методе ProductInOrder.objects.filter, джанго не видит в ProductInOrder сущности objects.filter?
from django.db import models
from products.models import Product
from django.db.models.signals import post_save
# Create your models here.
class Status(models.Model):
name = models.CharField(max_length=24, blank=True, null=True, default=None)
is_active = models.BooleanField(default=True)
created = models.DateTimeField(auto_now_add=True, auto_now=False)
updated = models.DateTimeField(auto_now_add=False, auto_now=True)
#функция каждой записи присваивает id, email в админке
def __str__(self):
return "Статус %s" % self.name
#функция изменяет название модели в единственном и множественном числе в админке
class Meta:
verbose_name = 'Статус заказа'
verbose_name_plural = 'Статусы заказа'
class Order(models.Model):
total_price = models.DecimalField(max_digits=10, decimal_places=2, default=0) # конечная цена за все товары в заказе
customer_name = models.CharField(max_length=64, blank=True, null=True, default=None)
customer_email = models.EmailField(blank=True, null=True, default=None)
customer_phone = models.CharField(max_length=48, blank=True, null=True, default=None)
customer_adress = models.CharField(max_length=128, blank=True, null=True, default=None)
status = models.ForeignKey(Status, on_delete=models.DO_NOTHING)
comments = models.TextField(blank=True, null=True, default=None)
created = models.DateTimeField(auto_now_add=True, auto_now=False)
updated = models.DateTimeField(auto_now_add=False, auto_now=True)
#функция каждой записи присваивает id, email в админке
def __str__(self):
return "Заказ %s %s" % (self.id, self.status.name)
#функция изменяет название модели в единственном и множественном числе в админке
class Meta:
verbose_name = 'Заказ'
verbose_name_plural = 'Заказы'
#функция каждой записи присваивает id, email в админке
def __str__(self):
return "Товар %s" % self.product.name
#функция изменяет название модели в единственном и множественном числе в админке
class Meta:
verbose_name = 'Товар в заказе'
verbose_name_plural = 'Товары в заказе'
#Переопределяем модель ProductInOrder
def save(self, *args, **kwargs):
price_per_item = self.product.price #Берем из продукта цену
self.price_per_item = price_per_item
self.total_price = self.nmb * price_per_item #Получаем общую сумму товаров в заказе
super(ProductInOrder, self).save(*args, **kwargs)
def product_in_order_post_save(sender, instance, created, **kwargs):
order = instance.order
all_products_in_order = ProductInOrder.objects.filter(order=order, is_active=True) # Считам товары в заказе
order_total_price = 0
for item in all_products_in_order:
order_total_price += item.total_price
------------------------------------------------------------------------------------------
В итоге вылезает ошибка: NameError: name 'ProductInOrder' is not defined