首页 > 解决方案 > 如何使用像 Fiverr 这样的 django allauth 实现两种用户类型(卖家和客户或买家)?

问题描述

我正在开发一个网络电子商务项目,其中将有两种类型的用户(卖家、客户)。我一直想知道如何实现fiverr卖家和买家这样的逻辑。我已经创建了一个带有两个标志的用户帐户(is_seller、is_customer)。

class User(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(max_length=254, unique=True)
name = models.CharField(max_length=254, blank=True)
customer = models.ForeignKey('Customer', on_delete=models.CASCADE)
is_seller = models.BooleanField(default=False)
is_customer = models.BooleanField(default=False)
is_staff = models.BooleanField(default=False)
is_superuser = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
last_login = models.DateTimeField(null=True, blank=True)
date_joined = models.DateTimeField(auto_now_add=True)

USERNAME_FIELD = 'email'
EMAIL_FIELD = 'email'
REQUIRED_FIELDS = []

objects = UserManager()

我想要 2 个用户(卖家和客户)。卖家也可以请求客户帐户(因此将使用相同的电子邮件进行登录和注册),反之亦然。这种情况的最佳方法是什么?

标签: djangodjango-modelse-commercedjango-allauth

解决方案


如果它们都共享相同的数据字段,那么这可能是最简单的方法。如果会捕获不同的数据,我只会推荐多个用户模型。在这种情况下,您可以扩展 User 模型


推荐阅读