Как загрузить изображение из формы, которое приходит в request.FILES[] в ImageField в моей django db?

Проблема в том, что когда я "загружаю" изображение, оно не делает никаких изменений там, где должно

Он позволяет мне сделать загрузку без ошибок, но, как я уже сказал, он не обновляет un db или где-либо еще.

Мне нужно написать больше, чтобы опубликовать это, так как у меня слишком много кода, поэтому не читайте эту часть в скобках

(Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis pharetra augue sed pharetra lobortis. Mauris sit amet pellentesque felis. Integer in magna nec enim placerat imperdiet vitae et justo. Integer vel est ultricies, faucibus urna id, consequat eros. Integer venenatis ut nisi a aliquam. Morbi leo sem, dictum porttitor nibh id, condimentum pellentesque purus. Quisque pellentesque et nibh nec hendrerit. Suspendisse in nulla urna. Nam sit amet congue quam. Duis tellus enim, tincidunt ac est eget, lobortis accumsan orci. Mauris laoreet iaculis ornare. Maecenas eget urna malesuada dolor mollis efficitur. Nullam vehicula vel justo nec suscipit. Morbi fermentum libero urna, feugiat tincidunt felis pharetra ut. Vestibulum at erat sed massa sodales malesuada et eget justo. Fusce at iaculis quam, non elementum quam.)

Это моя модель

from django.db import models
from django.utils.timezone import now
from django.contrib.auth.models import User
from ckeditor.fields import RichTextField

class Usuario(models.Model):
    instagram = models.CharField(verbose_name="Instagram", max_length=200, blank=True, null=False, default = "datacloud.arg")
    twitter = models.CharField(verbose_name="Twitter", max_length=200, blank=True, null=False, default = "DatacloudA")
    facebook = models.CharField(verbose_name="Facebook", max_length=200, blank=True, null=False, default = "DataCloud-100761698215531")
    profilepicture = models.ImageField(upload_to='fotos_perfil', verbose_name="Foto de Perfil", null=False, blank=False, default="foto_default.png")
    bio = RichTextField(verbose_name="Bio", null=False, blank=True, default="")
    username = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name="Usuario")
    updated = models.DateTimeField(verbose_name="Fecha de Edicion", auto_now=True)
    published = models.DateTimeField(verbose_name="Fecha de publicacion", default=now)
    
    class Meta:
        verbose_name = "Usuario"
        verbose_name_plural = "Usuarios"
        ordering = ["-username"]

    def _str_ (self):
        return self.username.username

Это моя форма

class EditarFoto(forms.Form):
foto = forms.ImageField(required=False, widget = forms.FileInput(
    attrs={
        'name':"profilepicture", 'placeholder':'Editar tu foto', 'aria-label':'profilepicture', 
        }
))
password = forms.CharField(required=True, widget=forms.PasswordInput(
    attrs={
        'class':'form-control', 'name':"password", 'placeholder':'Contraseña actual', 'aria-label':'password', 
        }
))

Это мой HTML

<form action="" method="POST" enctype="multipart/form-data" class="signin-form">
    {% csrf_token %}
    <div class="form-group mt-3">
        <div class="form-group">
            {{form.foto}}
        </div>
    </div>
    <div class="form-group" >
        <div class="form-group">
            {{form.password}}
        </div>  
    </div>
    <div class="form-group">
        <button type="submit" class="form-control btn btn-primary rounded submit px-3">Guardar cambios</button>
    </div>
</form>

А это мой взгляд

def editphoto(request):
    user = request.user
    if user.is_authenticated:
        form_editar_foto = EditarFoto()
        message = ""
        if request.method == "POST":
            form_editar_foto = EditarFoto(data = request.POST, files = request.FILES, user = user)
            if form_editar_foto.is_valid():
                foto = request.FILES['foto']
                password = request.POST.get('password', '')

                if user.check_password(password):
                    for usuario in Usuario.objects.all():
                        if usuario.username == user:
                            usuario.profilepicture = foto
                            return redirect (perfil)
                else:
                    message = "ERROR: La contraseña que ingresó es incorrecta", foto
                
        return render (request, "login/editarfoto.html", {"form": form_editar_foto, "message": message})
    else:
        return redirect("/")
Вернуться на верх