Удалить изображение пользователя из S3 и обновить его профиль по умолчанию, который также хранится в S3 - PullRequest
0 голосов
/ 30 октября 2019

Я создаю страницу профиля пользователя в Django и хочу дать пользователям возможность удалить ранее загруженный аватар и заменить его на профиль по умолчанию. Что я сделал, так это то, что после нажатия кнопки удаления изображение на AWS S3 удаляется, но я не знаю, как обновить user.image в базе данных. Если бы это был тип string или int, проблем не было бы. Но вопрос в том, как мне получить изображение из AWS, преобразовать его в любой тип объекта и обновить базу данных?

models.py:

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

Я также реализовал возможностьобновить старое изображение новым, поэтому я создал UpdateForm для этого. На странице с этой формой также есть кнопка, которая вызывает delete_image из views.py

forms.py

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

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

views.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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...