11

我通过参考教程制作了一个自定义用户模型,这就是我序列化新用户模型的方式:

序列化程序.py

from django.conf import settings
User = settings.AUTH_USER_MODEL

class UserSerializer(serializers.ModelSerializer):
    post = serializers.PrimaryKeyRelatedField(many=True, queryset=Listing.objects.all())
    class Meta(object):
        model = User
        fields = ('username', 'email','post')

视图.py

from django.conf import settings
User = settings.AUTH_USER_MODEL
class UserList(generics.ListAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer

但是当我尝试使用这个序列化程序时,我得到了

“str”对象没有属性“_meta”

我做错了什么?

4

1 回答 1

20

代替

User = settings.AUTH_USER_MODEL

利用

from django.contrib.auth import get_user_model
User = get_user_model()

请记住,这settings.AUTH_USER_MODEL只是string表示您将使用哪个用户模型,而不是模型本身。如果要获取模型,请使用get_user_model

于 2015-09-17T19:15:44.073 回答