我想检索我的User
类的实例,该实例扩展了AbstractBaseUser
。我还想使用django get_object_or_404
快捷方式通过主键过滤用户,但这不起作用:
from django.shortcuts import get_object_or_404
from django.conf import settings
user = get_object_or_404(settings.AUTH_USER_MODEL, pk=pk)
引发以下异常:
"ValueError at /v1/users/24c47b4a-920e-47c7-902c-80c64c0dd657/
First argument to get_object_or_404() must be a Model, Manager, or QuerySet, not 'str'.
在我的settings.py
中,这就是我的AUTH_USER_MODEL
的样子:
AUTH_USER_MODEL = 'users.User'
有没有办法做到这一点?
答案 0 :(得分:3)
您可以尝试此get_user_model
;
from django.contrib.auth import get_user_model
from django.shortcuts import get_object_or_404
from django.conf import settings
user = get_object_or_404(get_user_model(), pk=pk)
答案 1 :(得分:2)
也许您可以使用以下解决方案:
from django.shortcuts import get_object_or_404
from django.conf import settings
user = get_object_or_404(get_user_model(), pk=pk)