代码之家  ›  专栏  ›  技术社区  ›  Roma

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

  •  0
  • Roma  · 技术社区  · 7 年前

    我试图创建以下结构:我有 Sellers Buyers ,两者都是 Users 卖方 .

    我使用默认的Django User 我只能看到 username password 领域。我也想节省 Seller 名称我应该把它添加到 模型,或以某种方式并入 使用者 模型我看过一些应用程序,比如 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)
    

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

    我可以将fir名称添加到卖方和买方,但如果买方成为卖方,它将有2组名称。

    1 回复  |  直到 7 年前
        1
  •  1
  •   The_Cthulhu_Kid    7 年前

    使用 OneToOneField :

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

    user.buyer user.seller