如何在 DRF 中序列化自定义用户模型
Posted
技术标签:
【中文标题】如何在 DRF 中序列化自定义用户模型【英文标题】:How to serialize custom user model in 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'
我做错了什么?
【问题讨论】:
【参考方案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。以上是关于如何在 DRF 中序列化自定义用户模型的主要内容,如果未能解决你的问题,请参考以下文章
如何在实例中有自定义 .update() 以更新 DRF 可写嵌套序列化程序中的多对多关系时更新值