如何在没有 unicodeDecode 错误的情况下将图像发送到 Django-rest-framework

时间:2021-07-31 12:13:13

标签: python django

我正在尝试使用 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)

这是我在邮递员上测试它的方法:

enter image description here

0 个答案:

没有答案
相关问题