【问题标题】:Django-Filebrowser - IOError due to directory in image fieldDjango-Filebrowser - IOError 由于图像字段中的目录
【发布时间】:2013-07-14 09:43:59
【问题描述】:

我正在使用 django-filebrowser,模型字段声明为

image = FileBrowseField("Image", max_length=200, blank=True, null=True)

并在模板中使用图像

{% version_object obj.image "thumb" as img %}

在管理员中,文件浏览器允许用户选择目录来代替图像。当这种情况发生时(意外),上面的 version_object 模板标签会引发 IOError: "[Errno 21] Is a directory"。

这是非常灾难性的,因为它破坏了图像出现的整个页面。我怎么能...

  1. 让模板标签静默失败而不是破坏页面,并且
  2. 防止用户在填充字段时选择图片以外的任何内容?

“SELECT_FORMATS”设置听起来可能会有所帮助,但文档不清楚:

为从文件浏览器中选择元素设置不同的选项:

SELECT_FORMATS = getattr(设置,“FILEBROWSER_SELECT_FORMATS”,{ '文件':['文件夹','图像','文档','视频','音频'], '图像':['图像'], '文档':['文档'], '媒体':['视频','音频'],})

当使用浏览功能选择文件/文件夹时,您可以使用额外的查询属性 键入以限制选择。

我不明白此设置如何(或是否)适用于管理界面。

【问题讨论】:

    标签: django django-filebrowser


    【解决方案1】:

    尝试在您的字段上设置format attribute

    image = FileBrowseField("Image", format='image', max_length=200, blank=True, null=True)
    

    【讨论】:

    • 这不能解决 1,但它确实解决了 2,并且删除了现有的选定文件夹足以防止问题再次发生。谢谢!
    • @Tom 没问题,很高兴我能帮上忙
    猜你喜欢
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    • 2016-06-03
    • 2017-03-23
    相关资源
    最近更新 更多