__init \ \()缺少1个必需的位置参数:“save”

2024-09-24 02:20:13 发布

您现在位置:Python中文网/ 问答频道 /正文

尝试为每个实例创建一个二维码生成器时,出现以下错误:init()缺少1个必需的位置参数:“save”

有人能告诉我我的代码有什么问题吗?或者有没有更好的方法来生成每个型号的二维码?你知道吗

我也尝试过在方法中包含二维码生成。你知道吗

from django.db import models
import qrcode

# Create your models here.
class Attendee(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    present = models.BooleanField(default=False)
    qr = qrcode.QRCode(
        version=1,
        box_size=15,
        border=5
        )
    data = 'http://localhost:8000/attendees/confirmation/'
    qr.add_data(data)
    qr.make(fit=True)
    img = qr.make_image(fill='black', back_color='white')
    s = img.save('C:/Users/Storm/Projects/QRAttendance/attendees/static/images/QR1.png')
    # save = img.save('QR_'+str(first_name)+'_'+str(last_name)+'.png')

    def __init__(self, data, img, qrcode, qr, s):
        self.s = s

    def __str__(self):
        fullname = '{0.last_name}, {0.first_name}, {0.present}'
        return fullname.format(self)

当前错误为:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "C:\Users\Storm\Envs\QRAttendance\lib\site-packages\django\db\models\query.py", line 250, in __repr__
    data = list(self[:REPR_OUTPUT_SIZE + 1])
  File "C:\Users\Storm\Envs\QRAttendance\lib\site-packages\django\db\models\query.py", line 274, in __iter__
    self._fetch_all()
  File "C:\Users\Storm\Envs\QRAttendance\lib\site-packages\django\db\models\query.py", line 1242, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File "C:\Users\Storm\Envs\QRAttendance\lib\site-packages\django\db\models\query.py", line 73, in __iter__
    obj = model_cls.from_db(db, init_list, row[model_fields_start:model_fields_end])
  File "C:\Users\Storm\Envs\QRAttendance\lib\site-packages\django\db\models\base.py", line 513, in from_db
    new = cls(*values)
TypeError: __init__() missing 1 required positional argument: 's'

Tags: djangonameinselfdbdatamodelslib