我正在使用django-stdimage2重命名和调整项目中的图片大小。它具有通过Django Admin界面删除图像的功能:只需选中一个复选框,然后单击保存。
我可以使用Django Admin成功添加图像但是当我尝试删除图像时会返回此错误:
错误消息
/ admin / app / gear_images / 1 /
的TypeError
强制转换为Unicode:需要字符串或缓冲区,找到NoneType
模型
class gear_images(models.Model):
def __unicode__(self):
return self.image.name
gear_id = models.ForeignKey(gear)
image = StdImageField(upload_to='images/gear', blank=True, size=(640, 480, True), thumbnail_size=(100, 100, True))
description = models.CharField(max_length=100)
可能的原因
我假设因为图像已经从数据库中删除而返回错误,因此无法返回。
修正吗
为这种情况编码的正确方法是什么?
编辑:找到解决方案。谢谢Vanessa!
def __unicode__(self):
if self.image is None:
return "None"
elif self.image.name is None:
return "None"
else:
return self.image.name
谢谢: - )
答案 0 :(得分:5)
由于图像不存在,它正在尝试将“无”(NULL项)转换为unicode,这不起作用。你可以用以下方法测试它:
def __unicode(self)__:
if self.image is None:
return "None"
else:
return self.image.name