0
したがって、/ user/1エンドポイントに対して次のようなパッチ要求があります。明らかに、 "sdfsdf"は私のUserモデルの有効な属性ではありません。私が次のパッチを当てると、200の応答が得られますが、 "sdfsdf"は有効なフィールドではないため、400または422が返されます。どのように悪いパッチを拒否するのですか?Django RESTは不正なPATCHデータを拒否します
{
"sdfsdf": "sdfsdf"
"username": "alex"
}
私のユーザーシリアライザは、このようにlookes:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ("first_name", "id", "username")
私のユーザービューは、次のようになります。
class UserViewSet(viewsets.ViewSet):
serializer_class = UserSerializer
def list(self, request, pk=None):
queryset = User.objects.filter()
serializer = UserSerializer(queryset, many=True)
return Response(serializer.data)
def retrieve(self, request, pk=None):
queryset = User.objects.filter()
user = get_object_or_404(queryset, pk=pk)
serializer = UserSerializer(user)
return Response(serializer.data)
def partial_update(self, request, pk=None):
queryset = User.objects.filter()
user = get_object_or_404(queryset, pk=pk)
if not request.user.pk == user.pk:
raise PermissionDenied
serializer = UserSerializer(user, data=request.data, partial=True)
serializer.is_valid(raise_exception=True)
serializer.save()
return Response(serializer.data)
はたぶん、他は無視されますか?それを削除し、例外がスローされたかどうかを確認してください。 – basiljames
サイコロがなく、私はそれを取り除きましたが、まだ200 – user1152226