我目前正在为应用程序使用DRF。我设法将.jpg文件发送到服务器,并使用request.FILES进行检索。但是,当我尝试将对象的照片设置为图像时,会出现unicode错误。请帮助。
跟踪:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/handlers/exception.py", line 35, in inner
response = get_response(request)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/handlers/base.py", line 158, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/handlers/base.py", line 156, in _get_response
response = response.render()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/template/response.py", line 106, in render
self.content = self.rendered_content
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/rest_framework/response.py", line 72, in rendered_content
ret = renderer.render(self.data, accepted_media_type, context)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/rest_framework/renderers.py", line 105, in render
allow_nan=not self.strict, separators=separators
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/rest_framework/utils/json.py", line 28, in dumps
return json.dumps(*args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/__init__.py", line 238, in dumps
**kw).encode(obj)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/encoder.py", line 257, in iterencode
return _iterencode(o, 0)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/rest_framework/utils/encoders.py", line 52, in default
return obj.decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
[12/Jul/2018 00:16:07] "POST /users HTTP/1.1" 500 107175
示例用法:-我已经从request.FILES中检索了照片,并打印了file.jpg
@staticmethod
def create_user_type(user_type, data, photo):
if user_type == "Driver":
driver = Driver.objects.create(**data)
driver.photo = photo
driver.save()
return driver
models.py
class Person(SoftDeletionModel):
name = CharField(max_length=64)
email = CharField(blank=True, null=True, max_length=64)
contact_no = PositiveIntegerField()
address = CharField(max_length=256)
birth_date = DateField()
sex = CharField(max_length=1, choices=SEX)
photo = FileField(default='client/src/images/users.png', null=True)
class Driver(Person):
user = OneToOneField(User, on_delete=models.CASCADE, null=True)
application_date = DateField()