我创建了以下序列化程序:
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = get_user_model()
fields = (
'url', 'username', 'email', 'password',
)
write_only_fields = ('password',)
我还实现了创建和更新方法。 现在,如果我尝试使用以下数据创建用户:
{
"username": "foo",
"email": "foo@thefoo.net",
"password": "foo2016"
}
我会得到以下json回复:
{
"url": "http://someurl.com/catalog/api/users/11/",
"username": "foo",
"email": "foo@thefoo.net"
}
我想要的是一个JSON响应,它有一个属性指示操作是否成功,如下所示:
{
"success": true,
"data": {
"url": "http://someurl.com/foo/users/11/",
"username": "foo",
"email": "foo@thefoo.net"
}
}
如果发生错误,响应将如下所示:
{
"success": false,
"data": {
"username": [
"This field is required."
]
}
}
并且不应该是这样的:
{
"username": [
"This field is required."
]
}
我这样做的原因是为了改善前端的错误处理。
答案 0 :(得分:0)
在Meta课程中,您可以像extra_kwargs
extra_kwargs = {'success': True}
请参阅此处的文档:http://www.django-rest-framework.org/api-guide/serializers/#additional-keyword-arguments
我希望有所帮助。但我同意Zhandos Zhylkaidar关于检查HTTP响应代码的HTTP错误。
答案 1 :(得分:0)
由于您要更改结果,因此应覆盖renderer,以便将序列化程序内容包装到:
{
"success": false/true,
"data": <content>
}