`
bcyy
  • 浏览: 1881182 次
文章分类
社区版块
存档分类
最新评论

django动态改变ImageField,FileField的upload_to

 
阅读更多

今天在做个网站的时候需要动态判断将Image保存的位置,前面我说了动态改变上传文件名的方法,即自定义上传的文件名。这里说的是更加上传文件来判断将文件保存的位置。

刚开始我使用了重写Model的save方法来改变ImageFiled的upload_to属性,结果没有反映。后来在google上小搜一下,方法就有了。如下:

定义ImageField或FileField的时候给upload_to知道一个函数,而这个函数就是用于返回保存文件的目录的,这个函数接受两个参数,第一个参数就是Model,第二个是文件的名字,就是你上传的文件名字。

实例:

这里的model.catalog.name和model.category.name是假设的model的大类和小类,而没有对文件名改变。

OK!

分享到:
评论

相关推荐

    django之对FileField字段的upload_to的设定方法

    当使用Django的FileField或ImageField字段时,我们通常会用到一个名为`upload_to`的可选参数。这个参数允许我们指定文件上传后保存的子目录,它与`MEDIA_ROOT`设置共同决定了文件的存储位置。`MEDIA_ROOT`是一个字符...

    详解Django自定义图片和文件上传路径(upload_to)的2种方式

    Django模型中的ImageField和FileField的upload_to选项是必填项,其存储路径是相对于MEIDA_ROOT而来的。 我们来看一个简单案例(如下所示)。如果你的MEDIA_ROOT是/media/文件夹,而你的上传文件夹upload_to=“avatar...

    django 连接数据库、上传文件

    image_upload = models.ImageField(upload_to='images/') ``` `upload_to`参数指定了上传文件的存储位置。 2. **表单处理**:创建一个Django表单,包含这些字段,以便在视图中处理用户上传的文件。使用`...

    小程序图片上传至云服务器指定路径后端Django代码

    image = models.ImageField(upload_to='images/') upload_time = models.DateTimeField(auto_now_add=True) ``` 这里,`upload_to`参数指定了图片在服务器上的存储路径。 2. **视图(View)**:在`views.py`中,...

    django实现MODELFORM多文件上传范例

    files = models.FileField(upload_to='uploads/', blank=True, null=True, verbose_name='上传文件', multiple=True) ``` 这里我们定义了一个`FileUpload`模型,有一个CharField字段`title`用于存储文件的标题,...

    PyPI 官网下载 | django-image-cropping-0.4.0.tar.gz

    image = ImageCroppedField(upload_to='uploads/', cropping={'width': 200, 'height': 200}) ``` 最后,在模板中使用提供的模板标签来渲染裁剪界面: ```html {% load image_cropping %} <img src="{{ my_model...

    Django框架文件上传与自定义图片上传路径、上传文件名操作分析

    image = models.ImageField(upload_to=image_upload_to) ``` 在这个例子中,`image_upload_to`函数接受两个参数:`instance`和`filename`,返回一个包含UUID和原始文件扩展名的新文件名。通过这种方式,每个上传的...

    10分钟入手django

    file = models.FileField(upload_to='uploads/') ``` 在视图中,我们处理POST请求,接收文件数据并保存到模型中。同时,确保在forms.py中使用了FileInput来允许用户选择文件。Django的模型管理器会自动处理文件的...

    解决django FileFIELD的编码问题

    img = models.ImageField(upload_to='screenshots') # 存储大尺寸原图 thumb = models.FilePathField(path='screenshots/thumb') # 存储缩略图路径 ``` 在这个例子中,我们定义了两个字段:`img`用于存储用户上传...

    django 实现简单的插入视频

    例如,这里展示了在`User`模型中定义一个`icon`字段,类型为`ImageField`,`upload_to`参数设置为'icons',表示用户上传的头像将保存在`media/icons`目录下。 总的来说,Django实现插入视频涉及到模型设计、视图...

    Django中FilePathField字段的用法

    img = models.ImageField(upload_to='screenshots') thumb = models.FilePathField(path='screenshots/thumb') ``` **2. 处理流程** 当上传一张大图时,会自动创建缩略图,并保存在`screenshots/thumb`目录下。...

    django_file_integration

    file = models.FileField(upload_to='documents/') ``` 这里的`upload_to`参数指定了文件上传后的保存路径。Django会自动处理文件的上传过程,并将文件存储在服务器上。 接着,我们需要在视图(views)中处理文件...

    django-oss-storage:AliCloud OSS的Django存储后端

    image = models.ImageField(upload_to='images/', storage=settings.DEFAULT_FILE_STORAGE) ``` ### 4. 扩展与优化 - **分块上传**:对于大文件,`django-oss-storage` 支持分块上传,提高上传效率和稳定性。 - *...

    django-extra-checks:Django Checks Framework的有用检查的集合

    Django额外检查Django Checks框架的有用检查的集合支票楷模extra-checks-config -settings.EXTRA_CHECKS是django-extra-checks的有效... field-file-upload-to -FileField / ImageField必须具有非空的upload_to参数。

    django-multifile-upload:多文件上传演示

    files = models.FileField(upload_to='documents/', blank=True, null=True, verbose_name="文件", multiple=True) ``` 这里的`files`字段使用了`multiple=True`参数,表示可以上传多个文件。 **二、视图(View)...

    djangofile

    file = models.FileField(upload_to='uploads/') image = models.ImageField(upload_to='images/') ``` 2. 表单处理:在视图函数中,我们可以通过`request.FILES`获取上传的文件。Django会自动处理多部分表单数据...

    Django-Images

    image = models.ImageField(upload_to='images/') ``` 在这里,`upload_to`参数指定了上传图片的目录,Django会在媒体目录下创建这个路径。 ### 2. 静态文件与媒体文件 在Django中,静态文件(如CSS、JavaScript...

    django中media媒体路径设置的步骤

    headPhoto = models.FileField(upload_to='head/') hobby = models.TextField(max_length=200) ``` 在这个例子中,`headPhoto`字段用于上传用户的头像照片,`upload_to`参数指定了上传文件的子目录路径。 5. ...

    django中ORM模型常用的字段的使用方法

    image = models.ImageField(upload_to='images/', height_field='height', width_field='width') height = models.IntegerField(blank=True) width = models.IntegerField(blank=True) ``` #### 七、总结 通过...

Global site tag (gtag.js) - Google Analytics