【发布时间】:2011-04-03 07:54:52
【问题描述】:
当我在管理文件中执行以下操作时:
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, value, attrs))
return mark_safe(u''.join(output))
但是,如果我在 shell (python manage.py shell) 中执行此操作,它会完美运行!
很奇怪吧?
【问题讨论】:
-
你能从 shell 中尝试以下行,看看它是否有效?
photo = Photo.objects.get(original_image__exact=file_name) -
是的,我已经这样做了。很抱歉不太清楚。
-
好的,和使用控制台无关。如果我从数据库中复制文件名('photos/08-2010/placeholder2_2.png')然后写:
photo = Photo.objects.get(original_image__exact='photos/08-2010/placeholder2_2.png'),我会得到我希望的结果。我只需要找出字符串不同的原因。
标签: django django-widget imagekit django-imagekit