Я столкнулся с проблемой генерации QR-кода в django python. Когда я вставляю более 3 объектов класса, qrcode не работает.
Ниже приведен мой QR-код def save(self,args,*kwargs): mylist = [self.name,self.passport,self.test_report_result]
details = '-'.join([str(item) for item in mylist])
qrcode_img=qrcode.make(details)
canvas=Image.new("RGB", (300,300),"white")
draw=ImageDraw.Draw(canvas)
canvas.paste(qrcode_img)
buffer=BytesIO()
canvas.save(buffer,"PNG")
self.barcode.save(f'{self.name}',File(buffer),save=False)
canvas.close()
super().save(args,*kwargs)
Предполагается, что вы используете lincolnloop/python-qrcode
.
Вы пытаетесь вставить qrcode_img
, который больше, чем ваш canvas
. Вы должны использовать размер qrcode_img
при создании canvas
. Вместо:
canvas=Image.new("RGB", (300,300),"white")
использовать:
canvas = Image.new("RGB", (qrcode_img.width, qrcode_img.height), "white")