Django / Python: измените загруженное имя файла перед сохранением файла - PullRequest
4 голосов
/ 21 октября 2011

Я создаю сайт, где пользователи могут загружать изображения. Мне нужно убедиться, что каждое имя файла имеет уникальное имя, чтобы файлы не перезаписывали друг друга. Я сгенерирую уникальное имя. Но как мне изменить имя файла перед сохранением файла? Я вижу, что есть способы изменить папку, в которой она сохранена, но это не совсем то, что мне нужно.

class saved_photos(models.Model):
    name = models.CharField(max_length=20) 
    photo = models.ImageField(upload_to='images/things/', blank=True, null=True)

В моем коде я делаю:

new_name = get_unique_name()
p = saved_photos(name = new_name, photo = request.FILES)
p.save()

Мне нужно, чтобы действительное имя сохраненного файла было новым_имением.

Ответы [ 2 ]

7 голосов
/ 21 октября 2011

Вам необходимо определить функцию upload_to.

1 голос
/ 21 октября 2011

Django может правильно обрабатывать уникальное имя файла. Дубликат имени файла будет переименован автоматически. Если вы хотите установить имя файла вручную, просто определите функцию upload_to, как сказал DrTyrsa. Этот вопрос может вам помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...