Django:构建具有多个关系的用户模型。用户 -> 卖方 -> 买方和用户 -> 买方



>我正在尝试创建以下结构: 我有SellersBuyers,两者都是我的网站的Users。我希望一个人能够搜索卖家,并根据用户位置显示最近的Sellers

我使用的是默认的 DjangoUser身份验证,我只能看到usernamepassword字段。我也想保存Seller的名字。我应该将其添加到Seller模型中,还是以某种方式合并到User模型中?我已经看过一些应用程序,例如Django Profiles,我想弄清楚这是否是最好的方法。

为此,我创建了一个新的应用程序users并为/users/models.py中的卖家创建了一个模型

class Seller(models.Model):
user = models.ForeignKey(User, unique=True)
price = models.IntegerField(default=0)
availability = models.BooleanField(default=False)
verified = models.BooleanField(default=False)
class Buyer(models.Model):
user = models.ForeignKey(User, unique=True)
seller = models.ForeignKey(Seller)

目前,我可以显示卖家,但我无法访问他们的姓名或用户 ID。 我应该简单地将他们的姓名存储在卖家模型中,还是应该使用身份验证应用?此外,没有__str__(self)方法,因为我没有合理的标识符,例如 Name。

我可以向卖方和买方添加杉木名称,但是,如果买方成为卖方,它将有 2 组名称。

使用OneToOneField

user = models.OneToOneField(User, on_delete=models.PROTECT, related_name='buyer')

然后,您可以使用user.buyeruser.seller来访问详细信息。您还应该检查他们是否有买家或卖家资料。

最新更新