【问题标题】:Django Multiple User types in Django 1.9Django 1.9 中的 Django 多用户类型
【发布时间】:2017-09-02 23:19:57
【问题描述】:

我想创建一个 Web 应用程序,其中有两种不同类型的用户 Employee 和 Employers。他们将有大部分不常见的字段。如何实现两者的单独注册。 目前我继承自 User 模型。

models.py

class Category(models.Model):

cname=models.CharField(max_length=250)

def __str__(self):
    return self.cname


class Workplace(User):
 address=models.TextField(max_length=250)
 logo=models.ImageField(upload_to=upload_location,null=True,blank=True)
 wcategory=models.ForeignKey(Category,on_delete=models.CASCADE)



class Employee(User):
 employee_id=models.CharField(max_length=250)
 eworkplace=models.ForeignKey(Workplace,on_delete=models.CASCADE)

【问题讨论】:

    标签: django multiple-users


    【解决方案1】:

    在 django 中,您可以通过在 WorkPlace 和 Employee 模型中将 OneToOneField 设置为 User 来使他们都能够进行身份验证或注册。如果您在设置中将该用户设置为AUTH_USER_MODEL = <yourapp.User>,则可以注册到设置了该字段的机型。

    【讨论】:

    • 但是我们不能在 AUTH_USER_MODEL 中同时拥有两个模型
    • 是的。将此值设置为AUTH_USER_MODEL = <yourapp.User>,然后在需要注册的其他模型中,添加:user = models.OneToOneField(settings.AUTH_USER_MODEL, related_name='user_account')
    猜你喜欢
    • 2016-08-28
    • 1970-01-01
    • 1970-01-01
    • 2016-04-03
    • 2020-04-16
    • 2016-05-04
    • 2013-06-01
    • 2018-07-02
    • 1970-01-01
    相关资源
    最近更新 更多