在ImageField中双向上传图像

时间:2016-09-07 08:01:57

标签: python django python-3.x request urllib

我想为django-admin创建小部件,用于从网址上传图片或使用默认文件输入。

class ImageFieldFromUrlWidget(ClearableFileInput) :

    def render(self, name, value, attrs=None):
        base_content = super(ImageFieldFromUrlWidget, self).render(name, value, attrs=attrs)
        ps_input = URLInput().render(name='ps_%s'%name, value='', attrs={})
        return mark_safe(ps_input + base_content)

    def value_from_datadict(self, data, files, name):
        if data.get('ps_%s' % name, False) :
            import io, requests
            from urllib import request
            raw_image = requests.get(data.get('ps_%s' % name)).content
            new_file = InMemoryUploadedFile(io.BytesIO(raw_image), name, 'temp.jpg', 'jpeg', None, None)
            return new_file
        return super(ImageFieldFromUrlWidget, self).value_from_datadict(data, files, name)

我想下载文件并将其放入files-array进行默认保存。 但是当我发送数据时,我收到错误" The submitted file is empty"。

这是怎么回事?有什么想法吗?

PS我需要控制get-request,下载图片(设置cookie)

0 个答案:

没有答案