使用Django FORM上传的文件的唯一文件名

我正在尝试使用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

lesswell 回答:使用Django FORM上传的文件的唯一文件名

在模型中,您可以将imagefield的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)
,

据我了解,您的问题是,您可以在初始化FORM类时设置initial。喜欢:

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

来自django docs。另请参见initial参考。

本文链接:https://www.f2er.com/3160669.html

大家都在问