我正在创建自己的用户Restaurant
和Customer
。我扩展了AbstractUser
类,然后为每个用户创建了一个OneToOneField
字段。我想知道是否需要在AUTH_USER_MODEL
中添加settings.py
。并且还想知道那究竟是什么......
我打算做的是添加到我的settings.py:
AUTH_USER_MODEL = 'myapp.Customer','myapp.Restaurant'
我在这里有正确的想法吗?
我的models.py:
class User(AbstractUser):
is_restaurant = models.BooleanField(default=False)
is_customer = models.BooleanField(default=False)
class Restaurant(models.Model):
user = models.OneToOneField(User, primary_key=True, on_delete=models.CASCADE)
restaurant_name = models.CharField(max_length=50)
def __str__(self):
return self.restaurant_name
class Customer(models.Model):
user = models.OneToOneField(User, primary_key=True, on_delete=models.CASCADE)
address = models.CharField(max_length=200)
def __str__(self):
return self.user.get_full_name()
答案 0 :(得分:0)
我建议创建单个用户表而不是三个不同的表,并添加类型为餐厅,客户,管理员等。并且只在设置文件中添加一个表。这不会导致任何进一步的问题认证等。拥有单个用户表始终是健壮的。在你的情况下,有三个表似乎不好维护。
==========更新===========
为名为CustomUser的用户创建模型(或您感觉更好的名称),并使用AbstractBaseUser,PermissionsMixin扩展到Django的用户模型。喜欢
class CustomUser(AbstractBaseUser):
包含用户表已经存在的所有字段。并将您想要的表添加到bifurcate类型的餐厅和
客户有类型字段和选项选项。
如需进一步的帮助,请查看https://docs.djangoproject.com/en/1.11/topics/auth/customizing/#substituting-a-custom-user-model
部分答案 1 :(得分:0)
没有。 AUTH_USER_MODEL并不期待一个元组,所以这不会起作用。
在任何情况下,餐厅和客户都不是您的用户模式;您的子类用户是。这就是你应该在那个环境中投入的东西。