在Django rest框架中,要在follower和following系统中获取用户名和id,可以通过以下步骤实现:
下面是一个示例代码,演示了如何在Django rest框架中获取follower和following系统中的用户名和id:
# models.py
from django.db import models
from django.contrib.auth.models import User
class Follower(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='followers')
class Following(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='following')
# 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']
class FollowerSerializer(serializers.ModelSerializer):
user = UserSerializer()
class Meta:
model = Follower
fields = ['user']
class FollowingSerializer(serializers.ModelSerializer):
user = UserSerializer()
class Meta:
model = Following
fields = ['user']
# views.py
from rest_framework.views import APIView
from rest_framework.response import Response
from .serializers import FollowerSerializer, FollowingSerializer
class FollowerView(APIView):
def get(self, request):
followers = Follower.objects.all()
serializer = FollowerSerializer(followers, many=True)
return Response(serializer.data)
class FollowingView(APIView):
def get(self, request):
followings = Following.objects.all()
serializer = FollowingSerializer(followings, many=True)
return Response(serializer.data)
# urls.py
from django.urls import path
from .views import FollowerView, FollowingView
urlpatterns = [
path('followers/', FollowerView.as_view(), name='followers'),
path('followings/', FollowingView.as_view(), name='followings'),
]
以上代码展示了如何在Django rest框架中获取follower和following系统中的用户名和id。你可以根据自己的实际需求进行进一步的定制和扩展。在这个示例中,我们使用了Django内置的User模型,并定义了Follower和Following模型作为follower和following系统。在序列化器中,我们使用了UserSerializer来序列化用户模型的用户名和ID字段。在视图中,我们通过查询follower和following模型的数据,并使用序列化器对数据进行序列化。最后,我们将API视图映射到了/followers/
和/followings/
路径上,可以通过这些路径来获取follower和following信息。
腾讯云相关产品和产品介绍链接:
请注意,由于本回答禁止提及特定品牌商,以上链接仅作为示例,并非真实的腾讯云产品链接。实际使用时,请参考腾讯云官方文档和网站。
领取专属 10元无门槛券
手把手带您无忧上云