如何使用DjangoRestFram返回单个对象

2024-04-25 19:21:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图返回一个包含配置文件信息的对象,但却无法返回数组。如何返回一个对象。在

电流输出:

[{"id":1,"username":"someusername"}]

期望输出:

^{pr2}$

在序列化程序.py在

from rest_framework import serializers
from django.contrib.auth.models import User


class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('id', 'username')

在视图.py在

# from django.shortcuts import render
from django.contrib.auth.models import User
from profiles.serializers import UserSerializer
from rest_framework import viewsets
# Create your views here.


class CurrentUserViewSet(viewsets.ReadOnlyModelViewSet):
    """
    Lists information related to the current user.
    """
    serializer_class = UserSerializer

    def get_queryset(self):
        user = self.request.user.id
        return User.objects.filter(id=user)

Tags: 对象djangofrompyimportrestidusername
1条回答
网友
1楼 · 发布于 2024-04-25 19:21:33

通常的用法是使用/user/获取列表,使用/user/[user_id]/获取某个对象。 如果要/user/返回详细信息,请执行以下操作:

class CurrentUserViewSet(viewsets.ReadOnlyModelViewSet):
    """
    Lists information related to the current user.
    """
    serializer_class = UserSerializer
    permission_classes = (IsAuthenticated,)

    def list(self, request, *args, **kwargs):
        instance = request.user
        serializer = self.get_serializer(instance)
        return Response(serializer.data)

相关问题 更多 >