【发布时间】:2014-07-12 14:51:48
【问题描述】:
我正在尝试制作允许 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
【问题讨论】:
-
您提到,
POST可以从 Facebook 提取所有信息,例如名字、姓氏等。但据我了解,当您想获取信息时不要发布 -
谢谢,我的意思是,只要服务器(API 端点生成器)在 /user 处接收到通过 POST 传递给它的 access_token,它就可以使用它自己从 facebook 检索所有信息
-
不幸的是,
POST用于在 RESTful API 中创建。因此,我建议,如果您想从 facebook 检索所有信息而不创建任何新内容,请发出GET请求,并将 access_token 传递给查询参数或 HTTP 标头
标签: django django-rest-framework