从S3中删除用户映像,并用存储在S3中的默认映像更新他的配置文件

2024-04-26 18:45:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在Django中创建用户配置文件页面,我想让用户能够删除以前上传的头像,并用默认头像替换它。我所做的是,按下delete按钮后,awss3上的图像被删除,但我不知道如何更新数据库中的user.image。如果是字符串或int类型,就不会有问题。但问题是如何从AWS获取图像,将其转换为所需的任何对象类型并更新数据库?你知道吗

你知道吗型号.py地址:

class Patient(models.Model):
    image = models.ImageField(default='default.jpg', upload_to=get_file_path)

我还实现了用新图像更新旧图像的功能,因此我为此创建了一个UpdateForm。在具有该窗体的页面上还有一个按钮,它从视图.py你知道吗

你知道吗表单.py你知道吗

class PatientUpdateForm(forms.ModelForm):
    image = forms.ImageField(required=False)

    class Meta:
        model = Patient
        fields = ['image']

你知道吗视图.py你知道吗

@login_required
def delete_image(request):
    old_image_name = request.user.patient.image.name

    # refers to the specific user
    # don't know what's next
    Patient.objects.filter(pk=request.user.patient.pk).update(??)

    storage.delete(old_image_name)
    return redirect('profile')

Tags: 用户namepy图像image数据库类型request