以下是我的代码的简化快照。
from django.utils.translation import ugettext_lazy as _
from rest_framework.generics import UpdateAPIView
from rest_framework import status, renderers, serializers
在ShopUser模型中,电子邮件字段定义为: email = serializers.EmailField(max_length = 254,unique = True)
class MySerializer(serializers.ModelSerializer):
class Meta:
model = ShopUser
fields = ('email',)
class RemoveUser(UpdateAPIView):
model = ShopUser
permission_classes = (IsRegisteredShopUser,)
renderer_classes = (renderers.JSONRenderer,)
def put(self, request, *args, **kwargs):
serializer = MySerializer(data=request.data)
try:
serializer.is_valid(raise_exception=True)
except Exception as e:
log(...)
.isValid()始终引发以下异常。
`{'email': [<django.utils.functional.lazy.<locals>.__proxy__ object at 0x7ff2e0db8ef0>]}`. More error details: `{'email': [<django.utils.functional.lazy.<locals>.__proxy__ object at 0x7ff2e0db8ef0>]}`. ShopUser `ted@ross.com` submitted these data `<QueryDict: {'email': ['test@test.com']}>`
但是如果使用以下序列化程序,一切都运行顺利
class MySerializer(serializers.Serializer):
email = serializer.EmailField(max_length=254)
出了什么问题?提前致谢。干杯