ベースシリアライザを実装しようとしていて、「http://www.django-rest-framework.org/api-guide/serializers/#baseserializer」に従っています。DJangoでベースシリアライザを実装するのに手助けが必要
マイurls.py:
url(r'^auth/myuser/(?P<pk>[0-9]+)/profile/$', UserProfileViewSet.as_view({'patch':'update'}), name='user-profile'),
Views.py:
class UserProfileViewSet(viewsets.ModelViewSet):
queryset = CustomUser.objects.all()
serializer_class = UserProfileSerializer
def get(self,request,pk,*args,**kwargs):
user_instance = CustomUser.objects.get(pk=pk)
dashboard_data = UserProfileSerializer(user_instance)
content = {'result': dashboard_data}
return Response(content)
Serializers.py:しかし、私は
class UserProfileSerializer(serializers.BaseSerializer):
def to_representation(self,obj):
return{
'email':obj.email,
'first_name':obj.first_name,
'last_name':obj.last_name,
'date_of_birth':obj.date_of_birth,
'gender':obj.get_gender_display(),
'location':obj.location,
'calling_code':obj.callingcode,
'phone_primary':obj.phone_primary,
'phone_secondary':obj.phone_secondary,
'website':obj.website
}
「ユーザーオブジェクトはJSONシリアライズ可能ではありません」というエラーが表示され、シリアライズ可能ではないユーザーobjの属性は見つかりません。
私はすでにSOの答えを見つけましたが、私はdjango rest framework api guideでこれに似た手順を見つけることはできません。だから、apiガイドと同期している解決策を探しています。
を、私は同意し、私はこの作品と確信して:あなたはちょうどあなたがすでに行っているだけのよう
queryset
とserializer_class
を宣言する必要があります。しかし、私は単に学ぶためにBaseシリアライザを使用しようとします。 –