加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

django – 渲染时捕获DoesNotExist:不存在照片匹配查询

发布时间:2020-12-20 13:21:01 所属栏目:Python 来源:网络整理
导读:当我在管理文件中执行以下操作时: photo = Photo.objects.get(original_image__exact=file_name) val = photo.admin_thumbnail.url 我收到此错误: Caught DoesNotExist while rendering: Photo matching query does not exist. 这是我的班级: class Admin
当我在管理文件中执行以下操作时:

photo = Photo.objects.get(original_image__exact=file_name) 
val = photo.admin_thumbnail.url

我收到此错误:

Caught DoesNotExist while rendering: Photo matching query does not exist.

这是我的班级:

class AdminImageWidget(forms.FileInput):
    """
    A ImageField Widget for admin that shows a thumbnail.
    """

    def __init__(self,attrs={},*args,**kwargs):
        super(AdminImageWidget,self).__init__(attrs)

    def render(self,name,value,attrs=None):
        output = []
        file_name = unicode(value)

        if file_name:
            photo = Photo.objects.get(original_image__exact=file_name) 
            val = photo.admin_thumbnail.url

            output.append(('<a target="_BLANK" href="%s">'
                           '<img src="%s" /></a> '
                           % (val,val)))
        output.append(super(AdminImageWidget,self).render(name,attrs))
        return mark_safe(u''.join(output))

但是,如果我在shell(python manage.py shell)中执行它,它的工作完美!

怪啊?

解决方法

你究竟想做什么?

您应该找到另一种获取图像名称的方法. Django一直调用此方法’render’,即使字段本身无效.例如.:

>我在管理员中上传’me.png’文件.
>单击“保存”
> Django发现管理员中的另一个字段不正确并将表单返回给我.
>他使用’me.png’作为value参数调用render方法.
>你得到一个例外,因为这个模型甚至还没有保存.

还有其他方法可以获取文件名,您可以覆盖save方法并获取对象实例.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读