我的项目中有三种不同类型的用户。 这三个模型具有OneToOneField和User模型。
在许多情况下,我想弄清楚用户是哪三种类型。 有快速的方法吗?
我想在用户模型中添加一个字段,但不确定如何做到这一点。
答案 0 :(得分:0)
要使用额外字段扩展User
模型,您可以使用AbstractUser
模型。这将为您提供User
,username
等所有email
字段。然后,在MyUser
模型中添加所有额外字段。
您需要执行以下操作:
<强> models.py 强>
from django.contrib.auth.models import AbstractUser
class MyUser(AbstractUser):
my_extra_field = .. # your extra field
这将在User
模型中提供所有my_extra_field
字段以及名为MyUser
的额外字段。
答案 1 :(得分:0)
您可以实施django.contrib.auth.models.User
界面,举例django.contrib.auth.models.AnonymousUser
扩展django.contrib.auth.models.User
https://docs.djangoproject.com/en/1.8/ref/contrib/auth/#django.contrib.auth.models.AnonymousUser
答案 2 :(得分:0)
如果你想添加一个类型的用户选择,我会尝试这样的事情:https://docs.djangoproject.com/en/1.8/ref/models/fields/#choices
class Student(models.Model):
FRESHMAN = 'FR'
SOPHOMORE = 'SO'
JUNIOR = 'JR'
SENIOR = 'SR'
YEAR_IN_SCHOOL_CHOICES = (
(FRESHMAN, 'Freshman'),
(SOPHOMORE, 'Sophomore'),
(JUNIOR, 'Junior'),
(SENIOR, 'Senior'),
)
year_in_school = models.CharField(max_length=2,
choices=YEAR_IN_SCHOOL_CHOICES,
default=FRESHMAN)
def is_upperclass(self):
return self.year_in_school in (self.JUNIOR, self.SENIOR)