Уникальное имя файла загруженного файла с использованием формы django - PullRequest
1 голос
/ 05 ноября 2019

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

Forms.py

class HelpGuideForm(forms.ModelForm):
    title = forms.CharField(max_length = 50)
    image = forms.ImageField(required = False)

    class Meta:
        model = Helpguide
        fields = ['title', 'image']

Models.py

from uuid_upload_path import upload_to

class HelpguideImage(models.Model): 
    image = models.ImageField(upload_to = upload_to, blank=True, null=True)

Я хочу уникальныйимя для всех загруженных файлов. что-то вроде sd564sadasd61.jpg. Я использую Django 2.2

Ответы [ 2 ]

0 голосов
/ 05 ноября 2019

Что я понимаю в вашей проблеме, вы можете установить initial для класса FORM при его инициализации. как:

help_guide_form = HelpGuideForm(initial={'headline': uuid.uuid4().hex}, instance= Helpguide)

из django docs . Также см. исходный справочник.

0 голосов
/ 05 ноября 2019

В вашей модели вы можете установить upload_to поля изображения для функции, а затем сгенерировать uuid.

Очень простой (непроверенный) пример:

import uuid

Class MyModel(models.Model):
    def get_path(instance, filename):
        extension = filename.split('.')[-1]
        uuid = uuid.uuid1().hex
        return f'path/to/file/{uuid}.{extension}'

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