【问题标题】:How to serialize custom user model in DRF如何在 DRF 中序列化自定义用户模型
【发布时间】:2015-12-14 18:59:35
【问题描述】:

我已经制作了一个自定义用户模型,通过引用tutorial,这就是我序列化新用户模型的方式:

Serializers.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')

Views.py

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

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

'str' 对象没有属性 '_meta'

我做错了什么?

【问题讨论】:

    标签: python django serialization django-rest-framework django-serializer


    【解决方案1】:

    代替

    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

    【讨论】:

    • 是的,你是对的。但对于 django 1.8 它应该是from django.contrib.auth import get_user_model
    • @levi 感谢您的回答,只需稍作修正。你已经写了“from from django.contrib.auth import get_user_model”请更新为 single from。
    猜你喜欢
    • 2013-05-10
    • 2021-10-28
    • 2016-08-08
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多