Я столкнулся с проблемой генерации 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")
Вернуться на верх