Я пытаюсь найти правильный способ моделирования транзакций между пользователями на сайте электронной коммерции, который я создаю.Я хочу, чтобы транзакция была доступна обоим пользователям на панели инструментов.
Кажется неправильным сохранять транзакцию и все ее данные, сохраненные в обоих объектах пользователей.Я думаю, что мне нужно создать отдельную модель для транзакций, с уникальным идентификатором для каждой транзакции.Затем в объекте каждого пользователя я мог бы просто сохранить этот идентификатор транзакции.
Затем я бы просто дал каждой транзакции два первичных ключа, один для user.id покупателя и один для user.id покупателя?Это «много ко многим»?
Спасибо за любые советы здесь.
Правка - Вот что я пробовал:
class Transaction(models.Model):
owner = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
purchaser = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
create_time = models.DateField(auto_now=True)
item = models.ForeignKey(Item, on_delete=models.CASCADE)
Однако, это даетошибка items.Transaction.owner: (fields.E304) Reverse accessor for 'Transaction.owner' clashes with reverse accessor for 'Transaction.purchaser'.
HINT: Add or change a related_name argument to the definition for 'Transaction.owner' or 'Transaction.purchaser'.