python - 如何在没有 unicodeDecode 错误的情况下将图像发送到 Django-rest-framework
问题描述
我正在尝试使用 DRF 将图像上传到我的 Django 项目,但出现此错误:
'utf-8' codec can't decode byte 0xfd in position 34: invalid start byte
这是我在 Django 上的做法:
楷模
class Project(models.Model):
# relations
supplier = models.ForeignKey(User, on_delete=models.CASCADE, related_name="project_supplier", null=True, blank=True)
client = models.ForeignKey(User, on_delete=models.CASCADE, related_name="project_client", null=True, blank=True)
# fields
created = models.DateTimeField(auto_now_add=True, editable=False,null=True)
name = models.CharField(max_length=200)
cost = models.PositiveIntegerField(null=True, blank=True)
rate = models.PositiveIntegerField(null=True, blank=True)
is_done = models.BooleanField(default=True)
image_1 = models.ImageField(upload_to="upload/images/")
image_2 = models.ImageField(upload_to="upload/images/")
image_3 = models.ImageField(upload_to="upload/images/")
image_4 = models.ImageField(upload_to="upload/images/", null=True, blank=True)
image_5 = models.ImageField(upload_to="upload/images/", null=True, blank=True)
API
@api_view(["POST", ])
def create_new_project(request):
if is_post(request):
lang = request.data["lang"]
name = request.data["name"]
image_1 = request.data["image_1"]
image_2 = request.data["image_2"] if request.data["image_2"] is not "" else None
image_3 = request.data["image_3"] if request.data["image_3"] is not "" else None
image_4 = request.data["image_4"] if request.data["image_4"] is not "" else None
image_5 = request.data["image_5"] if request.data["image_5"] is not "" else None
the_token = request.META.get('HTTP_AUTHORIZATION')[6:]
user = Token.objects.get(key=the_token).user
try:
new_project = Project.objects.create(supplier=user, name=name, image_1=image_1, image_2=image_2,
image_3=image_3,
image_4=image_4, image_5=image_5)
data = model_to_dict(new_project)
return generate_response(True, "Projected added successfully" if lang == "en" else "تم إضافة المشروع بنجاح",
data)
except Exception as e:
return generate_response(False, e, None)
这是我在邮递员上测试它的方式:
解决方案
推荐阅读
- python - 将字符串与 django/python 中的数据库匹配
- reactjs - 媒体对象不渲染图像
- python - keras中的fit_generator,将所有内容加载到内存中
- image - 如何根据matlab中另一个坐标矩阵中点之间的距离对坐标矩阵进行排序?
- reactjs - 在复合组件中使用类似样式的属性进行样式设置
- python - 尝试使用时间戳作为位置在 pandas 中选择数据切片
- eigen - Catapult HLS 工具中是否支持 Eigen C++ 模板库?
- xcode - 如何找到多视图控制器的编辑器
- html - 如何显示html div,以便在表单提交后自动显示错误消息
- emacs - 如何根据起始字符设置emacs线条颜色