gpt4 book ai didi

python - 如何使 Django 自定义用户模型成为抽象类

转载 作者:行者123 更新时间:2023-12-05 07:55:10 26 4
gpt4 key购买 nike

我在 django 中创建了自己的自定义用户模型,并在 settings.py 中指定了相同的模型:

AUTH_USER_MODEL = 'userprofile.User'

在此之后,我将 User 创建为一个抽象类,因为我想从该类派生出两个独立的类,即 - Vendor客户。这将创建两个单独的数据库表。

当我创建另一个类时出现问题 - ProductReview。此类需要添加评论的用户的外键,该用户可以是供应商客户 .我不确定如何将这个外键约束放在这里,因为 settings.AUTH_USER_MODEL 将不起作用,因为 User 是一个抽象类。

类结构如下:

class UserManager(BaseUserManager):

class User(PermissionsMixin, AbstractBaseUser):
class Meta:
abstract = True

class Vendor(User):

class Customer(User):

class ProductReview(models.Model):
user = models.ForeignKey(
settings.AUTH_USER_MODEL, related_name='reviews', null=True, blank=True)

编辑 - 我为每个模型准备了三个不同的表格。

最佳答案

对于您的情况,我会考虑更改我的模型。我会这样做:

  • 保留默认的 User 作为 Django 的授权用户模型。
  • 创建与 User 模型具有一对一关系的 VendorCustomer 类以扩展它。<

通过这种方式,您可以使用 ProductReview 来引用 User,他可以是 Vendor Customer,或者您可以仅在需要时引用 Customer

查看更多信息 Django documentation: Extending the User model .

关于python - 如何使 Django 自定义用户模型成为抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30340304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com