我还是django的初学者。
当我保存到数据库中时,我收到了此错误。
'ascii'编解码器无法对位置14中的字符u'\ uff1f'进行编码:序数 不在范围内(128)
我在这里看到过类似的问题,但我已经尝试了,但仍然不行。
我相信它会发生在这个数据['english']中。
我应该更改views.py或序列化程序吗?
我的观点是
class DialogueView(APIView):
permission_classes = (IsAuthenticated,)
def post(self, request):
data = request.data
serializer = DialogueSerializer(data=request.data)
if not serializer.is_valid():
return Response(serializer.errors, status=
status.HTTP_400_BAD_REQUEST)
else:
owner = request.user
t = Dialogue(owner=owner, english=data['english'])
t.save()
# request.data['id'] = t.pk # return id
return Response(status=status.HTTP_201_CREATED)
我的序列化器是
class DialogueSerializer(serializers.ModelSerializer):
sound_url = serializers.SerializerMethodField()
class Meta:
model = Dialogue
fields = ('id','english','myanmar', 'sound_url')
def get_sound_url(self, dialogue):
if not dialogue.sound:
return None
request = self.context.get('request')
sound_url = dialogue.sound.url
return request.build_absolute_uri(sound_url)
答案 0 :(得分:0)
可能是DB不接受Unicode值作为字符串字段。
要解决此问题,请尝试两种方法:
将DB配置更改为使用unicode编码。例如。 This post for mysql。
在存储到DB之前对该unicode值进行编码。尝试像这样转换值:
val = data['English']
并将val存储到您的模型中。