我希望在创建用户对象时显示自定义输出,即success=true
。
这是我现在的代码,它可以正常工作:
class UserViewSet(viewsets.ViewSet):
queryset = User.objects.all()
def post(self, request, *args, **kwargs):
# ... do some stuff
return Response('some custom response')
我的问题是我还需要一些字段,例如用户名和密码。
我假设我需要一个序列化器。将序列化程序添加到我的ViewSet
,现在我有另一个问题。我无法让它返回我的自定义输出。
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ('url', 'username', 'email', 'is_staff')
def restore_object(self, attrs, instance=None):
#... do some stuff
return Response('sadf') # obviously this won't work
我试图找到覆盖的方法来控制序列化程序的输出,但我无法找到它。
答案 0 :(得分:1)
您正在寻找的方法是to_native。
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ('url', 'username', 'email', 'is_staff')
def to_native(self, obj):
return 'some custom response'
请注意,to_native
中的to_representation
已重命名为{{1}}