Python Django-';TypeError:应为字符串或字节,如object';使用Cloudinary清除上载的图像时

Python Django-';TypeError:应为字符串或字节,如object';使用Cloudinary清除上载的图像时,python,django,file-upload,django-class-based-views,cloudinary,Python,Django,File Upload,Django Class Based Views,Cloudinary,我在Django应用程序中使用Cloudinary来存储和服务用户在我网站的一个视图中上传的图像。图像被上传并正确显示;但是,在my UpdateView中,当用户选中“清除”以删除以前的图像,然后提交表单时,会显示此错误: TypeError:应为字符串或类似字节的对象 浏览器中的错误页面还显示以下突出显示的消息: …\lib\site packages\cloudinary\models.py在python中 返回self.parse_cloudinary_资源(值) …\lib\site

我在Django应用程序中使用Cloudinary来存储和服务用户在我网站的一个视图中上传的图像。图像被上传并正确显示;但是,在my UpdateView中,当用户选中“清除”以删除以前的图像,然后提交表单时,会显示此错误:

TypeError:应为字符串或类似字节的对象

浏览器中的错误页面还显示以下突出显示的消息:

…\lib\site packages\cloudinary\models.py在python中 返回self.parse_cloudinary_资源(值)

…\lib\site packages\cloudinary\models.py位于parse\u cloudinary\u资源中 m=重新匹配(CLOUDINARY\u字段\u DB\u re,值)

…\AppData\Local\Programs\Python\Python36-32\lib\re.py处于匹配状态 返回编译(模式、标志)。匹配(字符串)

以下是我的模型、视图和表单的外观:

models.py:

class Item(models.Model):
    name = models.CharField(max_length=255)
    image1 = CloudinaryField('image', blank=True, null=True)
views.py

class ItemUpdateView(LoginRequiredMixin, UpdateView):
    model = models.Item
    form_class = forms.ItemForm
forms.py

class ItemForm(forms.ModelForm):
    image1 = CloudinaryFileField(
            required=False,
            options = {'crop': 'limit', 'width': 546, 'height': 1000,})
    class Meta:
        model = models.Item
        fields = ("image1", "name")
我认为当字段值为空时,Cloudinary仍在期待一些东西。我看了文档,搜索了网页,但我就是不知道如何解决这个问题

编辑:我检查了我的管理员并试图从那里编辑一个项目,当我选中“清除”复选框并点击保存时,出现了相同的错误。因此,问题似乎在于我如何在模型上创建image1字段,因为Admin视图将仅依赖于此。但我仍然不知道如何修复它

Edit2:当我在“图像”字段上选中“清除”并单击“保存”时的完整回溯,来自管理员:

环境:

请求方法:发布请求URL:

Django版本:1.11.1 Python版本:3.6.1已安装的应用程序: ['django.contrib.admin'

“django.contrib.auth”

“django.contrib.contenttypes”

“django.contrib.humanize”

“django.contrib.sessions”

“django.contrib.messages”

“django.contrib.staticfiles”

“django.contrib.sites”

“阴云密布”

“阿拉斯”

“allauth.账户”

“allauth.socialaccount”

'allauth.socialaccount.providers.google'

“allauth.socialaccount.providers.twitter”

“干草堆”

“项目”]

已安装的中间件: ['django.middleware.security.SecurityMiddleware'

'django.contrib.sessions.middleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.xframeoptions中间件']

回溯:

文件 “D:\projects\django\gia\lib\site packages\django\core\handlers\exception.py” 在内部 41响应=获取响应(请求)

文件 “D:\projects\django\gia\lib\site packages\django\core\handlers\base.py” 你得到了什么回应 187response=self.process\u异常\u由\u中间件(e,请求)

文件 “D:\projects\django\gia\lib\site packages\django\core\handlers\base.py” 你得到了什么回应 185响应=包装的回调(请求,*回调参数,**回调参数)

文件 “D:\projects\django\gia\lib\site packages\django\contrib\admin\options.py” 包装中 551返回self.admin\u site.admin\u视图(视图)(*args,**kwargs)

文件 “D:\projects\django\gia\lib\site packages\django\utils\decorators.py” 在视图中 149响应=查看功能(请求,*args,**kwargs)

文件 “D:\projects\django\gia\lib\site packages\django\views\decorators\cache.py” 在_wrapped_view_func中 57响应=查看功能(请求,*args,**kwargs)

文件 “D:\projects\django\gia\lib\site packages\django\contrib\admin\sites.py” 在内部 224返回视图(请求、*args、**kwargs)

文件 “D:\projects\django\gia\lib\site packages\django\contrib\admin\options.py” 改变看法 1511返回self.changeform\u视图(请求、对象id、表单url、额外上下文)

文件 “D:\projects\django\gia\lib\site packages\django\utils\decorators.py” 内包装 67返回边界函数(*args,**kwargs)

文件 “D:\projects\django\gia\lib\site packages\django\utils\decorators.py” 在视图中 149响应=查看功能(请求,*args,**kwargs)

文件 “D:\projects\django\gia\lib\site packages\django\utils\decorators.py” 内界函数 63返回函数获取(self,键入(self))(*args2,**kwargs2)

文件 “D:\projects\django\gia\lib\site packages\django\contrib\admin\options.py” 在变换形式的视图中 1408返回self.\u changeform\u视图(请求、对象id、表单url、额外上下文)

文件 “D:\projects\django\gia\lib\site packages\django\contrib\admin\options.py” 在\u changeform\u视图中 1440如果form.is_有效():

文件“D:\projects\django\gia\lib\site packages\django\forms\forms.py” 这是有效的吗 183返回self.is_绑定而不是self.errors

文件“D:\projects\django\gia\lib\site packages\django\forms\forms.py” 出错 175self.full_clean()

文件“D:\projects\django\gia\lib\site packages\django\forms\forms.py” 干干净净 386自我清洁

文件“D:\projects\django\gia\lib\site packages\django\forms\models.py” 后清洁 396self.instance.full\u clean(exclude=exclude,validate\u unique=False)

文件 中的“D:\projects\django\gia\lib\site packages\django\db\models\base.py” 完全清洁 1226
if request.method == 'POST':
    if picture_form_set.is_valid():
    def clean_picture(self):
    return self.cleaned_data['picture'] or None
class CloudinaryFieldFix(CloudinaryField):
    def to_python(self, value):
        if value is False:
            return value
        else:
            return super(FixCloudinaryField, self).to_python(value)