Когда я загружаю изображение в базу данных, последнее изображение должно быть удалено, а новое сохранено.

models.py

def content_file_name(instance, filename):
    extension = filename.split(".")[-1]
    ext2 = filename.replace(extension, "png")
    og_filename = ext2.split('.')[0]
    og_filename2 = ext2.replace(og_filename, str(instance.id))
    path =  os.path.join(settings.BASE_DIR, 'static/images/profile',)
    dir_list = os.listdir(path)
    for i in dir_list:
        if i == og_filename2:
            dir_list.pop(-1)
            dir_list.append(og_filename2)
            return os.path.join('profile/', og_filename2)
    return os.path.join('profile/', og_filename2)

class User(models.Model):
    mobile = models.CharField(max_length=20)
    otp = models.CharField(max_length=6)
    name = models.CharField(max_length=200)
    username = models.CharField(max_length=200)
    profile_dp = models.ImageField(upload_to = content_file_name ,null=True, blank=True)
    profile_url = models.CharField(max_length=200)

Через функцию content_file_name() когда я загружаю изображение, его имя должно измениться на такой формат user's id.png. и затем, когда я снова загружаю изображение в то же поле, последнее изображение должно быть удалено и загружено новое изображение с тем же именем.

settings.py

MEDIA_ROOT = os.path.join(BASE_DIR, 'static/images',)
STATIC_URL = '/static/'
MEDIA_URL = '/images/'
STATIC_DIR = os.path.join(BASE_DIR, 'static',)
STATICFILES_DIRS = [STATIC_DIR]
Вернуться на верх