Концепция:
Напитки изготовлены из компонентов.Например, 10 мл водки.В некоторых квитанциях компонент очень специфичен (10 мл финляндской водки), а некоторые нет (10 мл любой водки).
Интересно, как смоделировать компонент для решения этой проблемы - на складе у меня есть конкретный продукт,который может удовлетворить больше требований.
Модель на данный момент:
class Receipt(models.Model):
name = models.CharField(max_length=128)
(...)
components = models.ManyToManyField(Product, through='ReceiptComponent')
def __unicode__(self):
return self.name
class ReceiptComponent(models.Model):
product = models.ForeignKey(Product)
receipt = models.ForeignKey(Receipt)
quantity = models.FloatField(max_length=9)
unit = models.ForeignKey(Unit)
class Admin:
pass
def __unicode__(self):
return unicode(self.quantity!=0 and self.quantity or '') + ' ' + unicode(self.unit) + ' ' + self.product.genitive
class Product(models.Model):
name = models.CharField(max_length = 128)
(...)
class Admin:
pass
def __unicode__(self):
return self.name
class Stock(Store):
products = models.ManyToManyField(Product)
class Admin:
pass
def __unicode__(self):
return self.name
Я думаю о создании некоторой таблицы, которая объединяет реальный продукт (на складе) с абстрактным продуктом (компонентом получения).Но, может быть, есть простое решение?