Как создать отношения между 3 моделями в django?
Я создаю торговую площадку, которая имеет 2 типа пользователей, т.е. покупателей и продавцов.
Теперь я хочу создать модель отношений между покупателями, продавцами и OrderedItems, чтобы продавцы получали уведомления, когда покупатели заказывают товар.
Вот модель, которую я сделал:
class Ordered(models.Model):
ordered_items = models.ManyToManyField(Cart)
seller = models.ForeignKey(SellerProfile, on_delete = models.SET_NULL, null = True)
buyer = models.ForeignKey(CustomerProfile, on_delete = models.CASCADE)
ordered_on = models.DateTimeField(auto_now_add = True)
Но я не знаю, как реализовать это в views.py
.
Любое предложение будет очень полезным
Спасибо
В соответствии с текущим отношением модели вы можете использовать сигналы pre_save или post-save в модели ordered. Каждый раз, когда вы обновляете новое значение (товар, добавленный покупателем) в ordered_items (отношение "многие-ко-многим"), вы можете отправить письмо продавцу, связанному с этим покупателем. Эта часть рассылки будет определена внутри сигналов pre или post .
В файле views.py вы получите входные параметры следующим образом -:
- seller_id
- заказанный_элемент
- buyer_id
Вы будете искать комбинацию seller_id и buyer_id с помощью оператора filter в модели Ordered и устанавливать ordered_item в этом поле. После этого будет вызвана функция сохранения модели, после чего сработает сигнал post_save и отправит письмо продавцу.
Для этого сценария будет 2 условия -:
- Либо вы создаете новое значение, если пользователь покупает свой первый товар.
- Покупатель добавляет еще один товар в корзину. В этом случае вы обновите существующее значение. В любом случае будет автоматически инициирована функция сохранения модели. .
Ссылка -: