While integrating python library qrcode==6.1 with django==3.1.2. I have been trying to generate a qrcode which will contain the URL links for my other websites.
Models.py
JavaScript
x
27
27
1
from django.db import models
2
import qrcode
3
from io import BytesIO
4
from django.core.files import File
5
from PIL import Image, ImageDraw
6
7
# Create your models here.
8
9
class Website(models.Model):
10
name = models.CharField(max_length=200)
11
qr_code = models.ImageField(upload_to='qr_codes', blank=True)
12
13
def __str__(self):
14
return str(self.name)
15
16
def save(self, *args, **kwargs):
17
qrcode_img = qrcode.make(self.name)
18
canvas = Image.new('RGB', (290,290), 'white')
19
draw = ImageDraw.Draw(canvas)
20
canvas.paste(qrcode_img)
21
fname = f'qr_code_{self.name}.png'
22
buffer = BytesIO()
23
canvas.save(buffer,'PNG')
24
self.qr_code.save(fname, File(buffer), save=False)
25
canvas.close()
26
super().save(*args, **kwargs)
27
But It always display an error saying that module ‘qrcode’ doesnot contain any attribute named ‘make()’. I want to know how to resolve this?
Advertisement
Answer
Make sure there are not any files named qrcode.py
in the directory where models.py
is located.
For more information check https://github.com/lincolnloop/python-qrcode/issues/185