@Digi3057

Как при создании обьекта джанго генерировать значение одного поля на основе другого?

Есть модель где при создании обьекта необходимо, чтобы одно поле вычислялось на основе другого. Пользоваться ей предполагается только через админку джанго, поэтому работаю только в models.py. пробовал сигналы receiver, но не удается даже добиться требуемого, не говоря уже об оптимальности решения.
class People(models.Model):
    name = models.CharField(max_length=500, unique=True)
    qr_code = models.ImageField(upload_to="img/qr_codes/", verbose_name="QR-код", null = True)

    def save(self, *args, **kwargs):
        qr = qrcode.QRCode(version=2, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=1)
        qr.add_data(self.name)
        qr.make(fit=True)
        self.qr_code=qr.make_image()
        self.qr_code.save('img/qr_codes',+str(self.name)+".png")

        super().save(*args, **kwargs)
  • Вопрос задан
  • 260 просмотров
Решения вопроса 1
@Jack444
Django для Image и File полей просто создаёт VARCHAR в бд и закидывает туда названия файла, попробуй так

class People(models.Model):
    name = models.CharField(max_length=500, unique=True)
    qr_code = models.ImageField(upload_to="img/qr_codes/", verbose_name="QR-код", null = True)

    def save(self, *args, **kwargs):
        qr = qrcode.QRCode(version=2, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=1)
        qr.add_data(self.name)
        qr.make(fit=True)
        qr.make_image().save(f'media/img/qr_codes/{self.name}.png'
        self.qr_code = self.name+'.png'
        super().save(*args, **kwargs)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы