Создание отношений «многие ко многим» с различной ценой для разных клиентов - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть три модели Product, Buyer и Offer.Любой покупатель может спросить о любом виде 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 голосов
/ 13 февраля 2019

Вы можете сделать это следующим образом:

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 как одна строка в вашем счете (счет-фактура), поэтому вы можете указать разные цены для разных покупателей.

...