小编Tan*_*ivy的帖子

如何在Django Rest Framework中序列化用户模型

我正在尝试使自己熟悉Django Rest Framework。尝试进行实验以列出我创建的用户,但是序列化程序始终返回空白对象。这是我的代码:

serializers.py

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


class CurrentUserSerializer(serializers.Serializer):
    class Meta:
        model = User
        fields = ('username', 'email', 'id')
Run Code Online (Sandbox Code Playgroud)

urls.py

from django.urls import include, path
from administration import views
from rest_framework.routers import DefaultRouter


router = DefaultRouter()
router.register(r'admin', views.CurrentUserViewSet)


urlpatterns = [
    path('', include(router.urls)),
]
Run Code Online (Sandbox Code Playgroud)

views.py

from django.shortcuts import render
from django.contrib.auth.models import User
from administration.serializers import CurrentUserSerializer
from rest_framework import viewsets

# Create your views here.

class CurrentUserViewSet(viewsets.ReadOnlyModelViewSet):
    queryset = User.objects.all()
    serializer_class = CurrentUserSerializer
Run Code Online (Sandbox Code Playgroud)

其余代码几乎是基于DRF教程的样板。 …

python django django-rest-framework

3
推荐指数
1
解决办法
4256
查看次数

如何使用Django-Rest-Framework返回单个对象

我试图返回带有配置文件信息的单个对象,但是却被卡住以换取数组。我如何只返回一个对象。

电流输出:

[{"id":1,"username":"someusername"}]
Run Code Online (Sandbox Code Playgroud)

所需的输出:

{"id":1,"username":"someusername"}
Run Code Online (Sandbox Code Playgroud)

serializers.py

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


class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('id', 'username')
Run Code Online (Sandbox Code Playgroud)

views.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)
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework

2
推荐指数
1
解决办法
1635
查看次数

标签 统计

django ×2

django-rest-framework ×2

python ×2