Django-如何使用get_object_or_404

时间:2018-12-07 11:13:44

标签: django

我想检索我的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'

有没有办法做到这一点?

2 个答案:

答案 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)