python - ValueError:对已关闭文件的 I/O 操作。在 Django 中将二维码保存到数据库时
问题描述
在这里,我想将我的 qr_code 保存到数据库,但我面临以下错误
ValueError:对已关闭文件的 I/O 操作。
def qr_code_file_name(instance, filename):
return '%s/qr_codes/%s/' % (instance.client_id, filename)
class ProductItems(models.Model):
item_name = models.CharField(max_length=512)
qr_code = models.ImageField(upload_to=qr_code_file_name, blank=True, null=True)
def __unicode__(self):
return self.item_name
def save(self, *args, **kwargs):
qrcode_img = qrcode.make(self.item_name)
canvas = Image.new('RGB',(90,90),'white')
draw = ImageDraw.Draw(canvas)
canvas.paste(qrcode_img)
fname = File('qrcode-code1.png')
buffer = BytesIO()
canvas.save(buffer,'PNG')
self.qr_code.save(fname,File(buffer),save=False)
canvas.close()
解决方案
推荐阅读
- linux - 捕获用户信号并继续执行
- android - 最后一项左对齐
- c++ - CMake /w Ninja 生成构建文件但没有可执行文件
- odoo - Odoo Qweb 报告标题重叠正文
- scala - Scala 代码通过命令行 sbt 编译,但在通过 Intellij Idea 编译时失败 - 如何设置 Intellij 以使用外部 sbt?
- android - 片段中可绘制的进度
- python - 出现任何错误 AttributeError: 'tuple' object has no attribute 'strip on user registration
- vue.js - Navbar Burger bulma 使用 bulma vue 未正确显示
- python - 对于带有变量列表
- python - 想启动ninja-ide但不会启动