我正在使用django-stdimage2重命名项目中的图像并调整其大小。它具有通过 Django 管理界面删除图像的功能:只需勾选复选框并单击“保存”即可。
我可以使用 Django 管理成功添加图像,但是当我尝试删除图像时,会返回此错误:
错误消息
/admin/app/gear_images/1/处出现类型错误
强制转换为 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)
可能的原因
我假设返回错误,因为图像已从数据库中删除,因此没有任何内容可返回。
修复?
针对这种情况编码的正确方法是什么?
编辑:找到解决方案。谢谢你,瓦妮莎!
def __unicode__(self):
if self.image is None:
return "None"
elif self.image.name is None:
return "None"
else:
return self.image.name
谢谢你:-)
最佳答案
由于图像不存在,它试图将“None”(NULL 项)转换为 unicode,但这是行不通的。您可以使用以下方法进行测试:
def __unicode(self)__:
if self.image is None:
return "None"
else:
return self.image.name
关于Django:发现强制转换为 Unicode NoneType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7246710/