如何在 Django 中导入用户模型并选择所有对象

Posted

技术标签:

【中文标题】如何在 Django 中导入用户模型并选择所有对象【英文标题】:How can I import the user model in Django and select all of the objects 【发布时间】:2013-06-22 17:28:46 【问题描述】:

当我使用时

from django.conf import settings

在我的 DjangoRestFramework 视图中,

class UserList(ListCreateAPIView):
    queryset = settings.AUTH_USER_MODEL.objects.all()
    serializer_class = UserSerializer

我收到错误消息

AttributeError at /users/

'str' object has no attribute 'objects'

Request Method:     GET
Request URL:    http://localhost:9999/users/
Django Version:     1.5.1
Exception Type:     AttributeError
Exception Value:    

'str' object has no attribute 'objects'

【问题讨论】:

【参考方案1】:

settings.AUTH_USER_MODEL 是一个字符串。它不是模型对象。

你需要做这样的事情:

try:
    from django.contrib.auth import get_user_model
except ImportError: # django < 1.5
    from django.contrib.auth.models import User
else:
    User = get_user_model()

现在,

queryset = User.objects.all()

-- 或者--

如果你只使用 django 1.5,你可以这样做:

from django.contrib.auth import get_user_model

queryset = get_user_model().objects.all()

【讨论】:

以上是关于如何在 Django 中导入用户模型并选择所有对象的主要内容,如果未能解决你的问题,请参考以下文章

在 Django 的 settings.py 中导入模型

如何在Java中导入组件对象模型(COM)?

如何在搅拌机中导入 FBX?

如何在Flash中导入视频?

如何从仅影响一个类的内置函数中导入对象?

根据用户输入从 django 模型中选择对象