【发布时间】:2020-01-23 18:38:00
【问题描述】:
我正在尝试找出在我正在构建的电子商务网站中为用户之间的交易建模的正确方法。我希望交易对仪表板中的两个用户都可用。
将交易及其所有详细信息保存到两个用户对象似乎是不正确的。我想我需要为交易创建一个单独的模型,每个交易都有一个唯一的 id。然后,在每个用户的对象中,我可以简单地保存该事务 ID。
然后我是否会简单地为每笔交易提供两个主键,一个用于购买者的 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'.
【问题讨论】: