Django:ProfileSerializer()不带参数

ih99xse1  于 2023-01-14  发布在  Go
关注(0)|答案(1)|浏览(117)

我尝试使用django restframework API_view获取登录的用户配置文件,我写了一个简单的逻辑来实现,但是它一直显示TypeError at /api/my-profile/2/ ProfileSerializer() takes no arguments的错误,我真的不知道我写的代码有什么问题。
这是这里的代码

class MyProfileView(APIView):
    # queryset = Profile.objects.all()
    serializer_class = ProfileSerializer
    permission_classes = [permissions.IsAuthenticated]
    
    def get_object(self, pk):
        try:
            return Profile.objects.get(pk=pk)
        except Profile.DoesNotExist:
            raise Http404

    def get(self, request, pk ,format=None):
        profile = self.get_object(pk)
        serializer = ProfileSerializer(profile)
        return Response(serializer.data)

urls.py

path("my-profile/<int:pk>/", MyProfileView.as_view(), name="my-profile"),

serializer.py

class ProfileSerializer():
    class Meta:
        model = Profile
        fields = ['image','full_name','bio','phone','dob','gender','country','state','city','address','longitude','latitude','zipcode','facebook','instagram','twitter','whatsApp',]
ehxuflar

ehxuflar1#

您的序列化器必须扩展serializers.ModelSerializer,否则它就不是真正的序列化器,并且不知道如何处理 meta类及其模型。

from rest_framework import serializers

class ProfileSerializer(serializers.ModelSerializer):
    class Meta:
        model = Profile
        fields = ['image','full_name','bio','phone','dob','gender','country','state','city','address','longitude','latitude','zipcode','facebook','instagram','twitter','whatsApp',]

查看序列化程序文档

相关问题