以不同的价格为不同的客户建立多对多关系

时间:2019-02-13 13:05:35

标签: django django-models many-to-many

我有三个模型ProductBuyerOffer。 任何买家都可以询问任何一种Product,但对于每个客户我可能会提供不同的价格。

产品的净价已经由供应商提供。

我在下面编写了代码,突然意识到我只能为报价单选择产品,但是每次使用此代码不能为每种产品和每个客户给出不同的价格。

如果有人可以给我一些建议,那就太好了。 谢谢。

class Product(models.Model):
    name = models.CharField(...)
    net_price = models.NumericField(...)

class Buyer(models.Model):
    name = models.CharField(...)

class Offer(models.Model):
    date = models.DateTimeField(auto_created=True, auto_now_add=True)
    buyer = models.ForeignKey(Buyer, default='',)
    products = models.ManyToManyField(Product, related_name='offer',)

1 个答案:

答案 0 :(得分:2)

您可以按照以下步骤进行操作:

class Product(models.Model):
    name = models.CharField(...)

class Buyer(models.Model):
    name = models.CharField(...)

class Offer(models.Model):
    date = models.DateTimeField(auto_created=True, auto_now_add=True)
    buyer = models.ForeignKey(Buyer)

class OfferUnit(models.Model):
    offer = models.ForeignKey(Offer)
    product = models.ForeignKey(Product)
    net_price = models.IntegerField()

OfferUnit就像帐单(发票)中的一行,因此您可以为不同的买家指定不同的价格。