首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在模板中捕获WindowsError

在模板中捕获WindowsError
EN

Stack Overflow用户
提问于 2016-10-11 17:55:26
回答 1查看 11关注 0票数 0

我正在Windows机器上编码,但我在Linux上运行我的生产站点。

当试图使用从生产系统复制的数据库到达我的开发机器上的页面时,如果这些文件在本地不存在,则当我试图列出文件时会出现错误。这和预期的一样,因为我只是复制了DB而不是文件。我不需要/不需要这些文件,但我也不希望出现以下错误:

在/126/ WindowsError /WindowsError 3处系统找不到指定的路径:WindowsError

与其抛出错误,我更愿意在模板中处理这个问题,如下所示:

代码语言:javascript
复制
{% if doc.data %}{{ doc.data.size | filesizeformat }}{% else %}File not found{% endif %}

不过,这不管用。doc.data确实存在,因为DB知道这个文件位置的值。但是这个文件在磁盘上不可用。

有什么方法能正确捕捉到这个,最好是在模板中吗?

我的模特:

代码语言:javascript
复制
class Document(models.Model):
    data = models.FileField(upload_to="documents/%Y/%m/%d")
EN

回答 1

Stack Overflow用户

发布于 2016-10-11 18:06:07

这不是最好的解决方案,但可以在views.py中(模板中没有)实现如下的解决方案:

代码语言:javascript
复制
documents = Document.objects.all()

if documents:
    exclude_list = []
    for doc in documents:
        try:
            local_file = doc.data.file
        except IOError:
            exclude_list.append(doc.id)
    documents = documents.exclude(id__in=exclude_list)

context_dict['documents'] = documents

这样,如果没有找到有效的本地文件,文档就不会显示在模板中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39983598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档