Лучший способ добавить штамп даты-времени в каталог поля изображения django

До сих пор я использовал эту функцию

def user_compressed_path(instance, filename):
    profile_pic_name = 'user/{0}/compressed/profile.jpg'.format(instance.id)
    full_path = os.path.join(settings.MEDIA_ROOT, profile_pic_name)
    if os.path.exists(full_path):
        os.remove(full_path)
    return profile_pic_name


def user_picture_path(instance, filename):
    profile_pic_name = 'user/{0}/picture/profile.jpg'.format(instance.id)
    full_path = os.path.join(settings.MEDIA_ROOT, profile_pic_name)
    if os.path.exists(full_path):
        os.remove(full_path)
    return profile_pic_name

мне нужен путь что-то вроде

'user/{0}/compressed/{1}/profile.jpg'.format(instance.id, date_time_stamp)
'user/{0}/picture/{1}/profile.jpg'.format(instance.id, date_time_stamp)

каково должно быть значение date_time_stamp

Вы можете сделать что-то вроде этого

import datetime


date = datetime.datetime.now().date()
time = datetime.datetime.now().time()

def user_compressed_path(instance, filename):
    profile_pic_name = f'user/{instance.id}/{date}/{time.strftime("%H:%M:%S")}/profile.jpg'
    full_path = os.path.join(settings.MEDIA_ROOT, profile_pic_name)
    if os.path.exists(full_path):
        os.remove(full_path)
    return profile_pic_name

это вернет результат следующего вида, если экземпляр имеет id 2 user/2/2021-12-12/10:45:09/profile.jpg

Вернуться на верх