我正在尝试查询的Django应用中有一个CustomUser模型,但是查询引发TypeError:all()缺少1个必需的位置参数:'self'
这是我的用户模型:
class CustomUser(AbstractUser):
username = models.CharField(max_length=11, blank=True, default=
'newUser', verbose_name="User Group")
email = models.EmailField(_('email address'), unique=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
objects = CustomUserManager
# add additional fields in here
display_name = models.SlugField(max_length=50, unique=True)
phone = models.CharField(max_length=14, blank=True, help_text="XXX-XXX-XXXX")
def __str__(self):
return self.display_name
我试图完成的工作在此处的几篇文章中得到了介绍,包括this one。所以,我试试这个:
>>> from django.contrib.auth import get_user_model
>>> User = get_user_model()
>>> userList = User.objects.all()
我没有得到期望的查询集,而是引用了缺少的“自我”参数的错误。我在这里为该错误找到的解决方案似乎不起作用;显然我遗漏了一些东西。
答案 0 :(得分:0)
您忘记了通过调用构造函数(带有括号CustomUserManager
)来创建您的()
:
class CustomUser(AbstractUser):
# ...
objects = CustomUserManager()
# call the constructor ^^
通过不这样做,objects
只是对CustomUserManager
类的引用。如果再调用.all()
,则会调用类方法,并且该方法确实缺少隐式的self
参数。