Я хочу, чтобы имена моих файлов были уникальными, чтобы предотвратить столкновение.
image = models.ImageField(upload_to=unique_string_generator, unique=True, blank=True)
это мое поле.
def unique_string_generator(instance: any, filename: str, *, path: str) -> str:
"""
:param instance: Instance to pass
:param filename: filename of the uploaded file
:param path: path where to upload
:return: where the file will be uploaded
"""
extension = filename.split('.')[-1]
unique_value = uuid.uuid4()
filename = f'{unique_value}-{instance.pk}.{extension}'
return os.path.join(path, filename)
Это моя функция, как я могу передать
path = 'где-то'
в поле, потому что django принимает мою функцию в качестве аргумента. Небольшой вопрос, что нужно передать для аннотации django instance? Я только что передал
экземпляр: любой
, потому что я не мог понять, что комментировать? Заранее спасибо!