我得有三个布尔变量扩展的用户模型,说明什么类型的用户:Django的自定义用户登录,使用不同类型的用户
class MyUser(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
newField = models.CharField(max_length=30)
isTypeA = models.BooleanField(default=False)
isTypeB = models.BooleanField(default=False)
我也写一个测试的基于类的观点,所谓类型检查
from django.shortcuts import render
from django.contrib.auth.models import User
from .models import MyUser
from django.contrib.auth.decorators import user_passes_test
def typeCheck(User):
return User.isTypeA
@user_passes_view(typeCheck, login_url='/login')
def typeAView(request):
...
当我尝试访问的观点,我得到一个错误说:“用户”对象有没有属性“ISA”。我如何正确访问扩展用户模型的字段?我也试过
return User.MyUser.isTypeA
但只是返回一个错误说:“用户”对象有没有属性“MYUSER”
是不是'user.my_user.isTypeA'? –
@RégisB。不,那不是......!为什么混乱... –
没错。这里澄清:https://docs.djangoproject.com/en/1.10/ref/models/fields/#django.db.models.OneToOneField –