【发布时间】:2017-02-19 00:45:05
【问题描述】:
我还是 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)
【问题讨论】:
-
哪个版本的python?
-
我使用的是 python 2.7
-
您在序列化程序和查看文件的第一行有魔术注释
# coding: utf-8吗? -
安姆号我没有。
-
添加它。它可能会解决您的问题。