我还是django的初学者。
当我保存到数据库中时,我得到了这个错误。
‘'ascii’编解码器不能将字符u'\uff1f‘编码在第14位置:序数不在范围(128)
虽然我在这里看到过类似的问题,但我已经尝试过了,但这仍然是不可能的。
UnicodeEncodeError:'ascii‘编解码器不能在0位置编码字符u’\xef:序数不在范围内(128个)
我相信这是发生在这个数据‘英语’。
我应该换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)发布于 2016-10-10 15:15:22
可能是DB不接受Unicode值作为字符串字段。
要解决这个问题,可以尝试两种方法:
val = data['English']并将val存储到您的模型中。https://stackoverflow.com/questions/39960921
复制相似问题