【发布时间】:2021-02-16 10:53:13
【问题描述】:
我正在尝试获取所有姓名、电子邮件和电话的列表,而无需为每个名称、电子邮件和电话编写类似的类,并使用 get() 方法。有没有办法为此目的编写一个通用类?我有意识地使用了 APIView 和 Serializer(而不是 ModelSerializer)。这是我的代码。
views.py
class userInfoList(APIView):
def get(self, request, format=None):
users = userInfo.objects.all()
serializer = userInfoSerializer(users, many=True)
return Response(serializer.data)
serializers.py
from phonenumber_field.serializerfields import PhoneNumberField
from rest_framework import serializers
from .models import userInfo
class userInfoSerializer(serializers.Serializer):
id = serializers.IntegerField(read_only=True)
name = serializers.CharField(max_length=50)
email = serializers.EmailField(max_length=70)
phone = PhoneNumberField()
def create(self, validated_data):
return userInfo.objects.create(**validated_data)
【问题讨论】:
-
为什么要覆盖更新方法?
-
@ruddra 我没有在这里包含我的所有代码。我正在为每个用户使用 put、delete 功能
-
您在寻找什么?你的代码不工作吗?
-
@VineetYadav 我只是不想获取每个用户的所有信息。我还想单独获取所有电子邮件或所有姓名
-
如果您提供一个您寻求的响应示例会更好,就像我理解您需要的是:{data:[{'id':1,'name':'u1','电子邮件':'email1','电话':'phone1'},{'id':2,'名称':'u2','电子邮件':'email2','电话':'phone2'}],' all_emails':['email1','email2'],'all_names':['u1','u2'],'all_phone':['phone1','phone2']}。对吗?
标签: python django list django-rest-framework django-views