需求描述: 根据模型中某个字段的内容生成二维码,可在界面展示相关二维码图片。
逻辑文件:
barcode = fields.Char(string="工牌 ID", copy=False)
qr_image = fields.Binary(string="二维码图片", compute='compute_qr_image')
@api.depends('barcode')
def compute_qr_image(self):
for employee in self:
if not employee.barcode:
employee.qr_image = False
continue
# 生成二维码
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data(employee.barcode)
qr.make(fit=True)
img = qr.make_image()
temp = BytesIO()
img.save(temp, format="PNG")
qr_image = base64.b64encode(temp.getvalue())
employee.qr_image = qr_image
视图文件:
展示效果: