Django:建立具有多重关系的用户模型。用户 -> 卖家 -> 买家和用户 -> 买家
Django: Building user Models with multiple relations. User -> Seller -> Buyer and User -> Buyer
我正在尝试创建以下结构:我有 Sellers
和 Buyers
,它们都是我网站的 Users
。我希望有人能够搜索卖家并根据用户位置显示最近的 Sellers
.
我正在使用默认的 Django User
身份验证,我只能看到 username
和 password
字段。我也想保存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.buyer
或 user.seller
访问详细信息。您还应该检查他们是否有买家或卖家资料。
我正在尝试创建以下结构:我有 Sellers
和 Buyers
,它们都是我网站的 Users
。我希望有人能够搜索卖家并根据用户位置显示最近的 Sellers
.
我正在使用默认的 Django User
身份验证,我只能看到 username
和 password
字段。我也想保存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.buyer
或 user.seller
访问详细信息。您还应该检查他们是否有买家或卖家资料。