Python 将现有ModelSerializer与JSONResponse一起使用
我有一个不使用视图集的Twitter身份验证视图,因此可以在后端处理身份验证。该视图使用Python 将现有ModelSerializer与JSONResponse一起使用,python,django,django-rest-framework,Python,Django,Django Rest Framework,我有一个不使用视图集的Twitter身份验证视图,因此可以在后端处理身份验证。该视图使用oauth\u令牌&使用Twython获取配置文件并创建Twitter模型 目前,我只在成功时返回status201,但为了减轻创建后对另一个请求的需要,我想返回创建的模型。我已经有了一个TwitterSerializer,它定义了我想要包含的字段,所以如果可能的话,我希望能够重用它 TwitterSerializer class TwitterSerializer(serializers.ModelSeri
oauth\u令牌
&使用Twython获取配置文件并创建Twitter模型
目前,我只在成功时返回status201
,但为了减轻创建后对另一个请求的需要,我想返回创建的模型。我已经有了一个TwitterSerializer
,它定义了我想要包含的字段
,所以如果可能的话,我希望能够重用它
TwitterSerializer
class TwitterSerializer(serializers.ModelSerializer):
class Meta:
model = Twitter
fields = (
"id",
"twitter_user_id",
"screen_name",
"display_name",
"profile_image_url",
)
当我尝试使用它时,我得到的错误是TwitterSerializer的实例不是JSON可序列化的
serialized = TwitterSerializer(instance=twitter)
return JsonResponse({ "created": serialized })
我可以使用serializers.serialize()
我可以将
字段
kwarg传递给serialize()
,但如果不需要,我不想重复我自己。那么,在这种情况下是否可以重复使用我的TwitterSerializer
?我很难找到一个直接的答案,因为大多数文档都假设您在使用RSS时会使用ViewSet,这是可以理解的,这感觉就像是一个边缘案例。我也愿意接受重构这种方法的建议 序列化之后,您可以使用序列化程序的data
属性获取数据,如下所示
serialized = TwitterSerializer(instance=twitter)
return JsonResponse({ "created": serialized.data })
您应该使用Django restResponse
而不是像这样使用JsonResponse
from rest_framework response
serialized = TwitterSerializer(instance=twitter)
return response.Response({ "created": serialized.data })
from rest_framework response
serialized = TwitterSerializer(instance=twitter)
return response.Response({ "created": serialized.data })