我正在尝试制作允许GET和POST的模型和序列化
GET将允许客户端查看所有用户的列表,并显示姓名,姓氏等信息,但不显示access_token
但是,POST只需要access_token,并且可以从Facebook获取所有信息,如名字,姓氏等。
如何在序列化器中表达和编码get和post的这种不对称性质
serializers.py
class UserSerializer(serializers.HyperlinkedModelSerializer):
"""
User Serializer
"""
class Meta:
model = models.User
fields = ('id', 'username', 'first_name', 'last_name', 'image_url', 'activities', 'url', 'access_token')
views.py
class UserViewSet(viewsets.ModelViewSet):
"""
List all users - this should be taken out as it would never be used in app, and we wont want this as well, as app can only view friend details
Gives details of an user - this should stay
"""
queryset = models.User.objects.all()
serializer_class = UserSerializer
答案 0 :(得分:3)
以下任何选项:
read_only
。get_queryset
并为GET
vs POST
返回不同的序列化程序。retrieve()
上写下create()
和ViewSet
方法。然而,POST只需要access_token,并且可以从Facebook获取所有信息,如名字,姓氏等。
您可能需要在序列化程序上使用自定义restore_object
来提取该信息。