Django Models создают пакет продуктов
У меня есть модель продукции
class Product(models.Model):
name = models.CharField(max_length=200)
price = models.DecimalField(max_digits=8, decimal_places=2)
weight= models.PositiveIntegerField(default=454)
brand = models.ForeignKey(Brand, on_delete=models.CASCADE, related_name="product_brand", blank=True, default=1)
flavour = models.CharField(max_length=200, blank=True)
discription = models.TextField(default='')
image = models.ImageField(null=True, blank=True)
def __str__(self):
return self.name
@property
def imageURL(self):
try:
url = self.image.url
except:
url = ''
return url
Теперь я хочу иметь возможность создать пакет, скажем, купить 5 товаров за £ 10. В корзине покупок она будет добавлена как 5 X Multibuy. Поэтому у меня есть еще одна модель под названием Multibuy
class Multibuy(models.Model):
name = models.CharField(max_length=200, default='Multibuy')
brand = models.ForeignKey(Brand, on_delete=models.CASCADE, related_name="multibuy_brand", blank=True, default=1)
product = models.ForeignKey(Product, on_delete=models.SET_NULL, null=True)
max_items = models.IntegerField(default=8, null=True, blank=True)
price = models.DecimalField(max_digits=8, decimal_places=2)
Мне интересно узнать, есть ли лучший способ сделать это. Например, написать декоратор в модели products, и отказаться от модели Multibuy.
С учетом того, что цена и количество комплектов для разных товаров будет разным, и админу нужно добавить это, и, возможно, он захочет изменить это позже.