TypeError:必须是字符串或缓冲区,而不是实例

时间:2015-04-25 05:04:38

标签: javascript python django

我在django项目中使用django-jsignature。在发出请求后,表单返回“type'example'”。我试图将其保存为图像,但我得到了上述错误。

更好的方法是将表单数据保存为文档中建议的矢量图像。

我的功能:

def signature(request):
    form = SignatureForm(request.POST or None)
    if form.is_valid():
        signature = form.cleaned_data.get('signature')
        if signature:
            # as an image
            signature_picture = draw_signature(signature)
            signature_file_path = draw_signature(signature, as_file=True)
            with open(signature_file_path), 'wb') as f:
                f.write(signature_picture)

(signature_file_path =='/ tmp / tmpB71Wft.PNG')

2 个答案:

答案 0 :(得分:1)

我认为文档有点不清楚,但你应该使用draw_signature(data, as_file=False)(默认)或draw_signature(data, as_file=True),不需要两者。

True值传递给as_file会生成包dump the image content to a file,而False则会返回PIL.Image个实例。

原始数据仍在signature变量中可用(作为JSON字符串或列表,因此您也可以直接使用该向量。

答案 1 :(得分:0)

draw_signature()可以带一个或两个参数吗?您的代码在一个位置使用一个参数,在第二个位置使用两个参数。