Django:发现强制转换为 Unicode NoneType

标签 django

我正在使用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/

相关文章:

django - 国际化 JavaScript 代码时的空目录

python - forms.py 中的 Django 类型错误

多对多表的Django外键

django - 'WSGIRequest' 对象没有属性 'user'

python - DRF : Database not updating

python - Django 1.8.8 迁移首先什么也没说,然后不会应用更改

python - 如何引发 python 异常并包含 Sentry 的附加数据?

python - 将 Django 1.8 项目代码更新/升级到 Django 2.0

python - django : 404 (main. url 未包含在 myproject/urls.py 中?)

javascript - 如果 URL 不是 home/root,Javascript 代码将无法工作