Здравствуйте, пожалуйста, я хочу сгенерировать случайный буквенно-цифровой код, превратить его в qr-код и затем сохранить оба в моей базе данных одним щелчком мыши, но у меня постоянно возникают ошибки

Я начинающий и это часть первого большого проекта, который я начал, но я продолжаю получать ошибки. qr-код создается и сохраняется в медиафайле, но имя и буквенно-цифровой код не сохраняются в базе данных, а когда я пытаюсь немного изменить код, имя и буквенно-цифровой код сохраняются, но qr-код не создается. Если возможно, мне также нужен способ сохранить каждый qr-код с буквенно-цифровым кодом, используемым для его генерации (способ дать более осмысленное имя qr-коду будет приветствоваться

).
from django.shortcuts import render, redirect
from .models import Code
from django.conf import settings
from qrcode import *
import time 
from pathlib import Path
from django.http import HttpResponseRedirect
from .forms import CodeForm

import random
import string

# Create your views here.


def show(request):
    return render(request, 'show.html')

def win(request):
    return render(request, 'win.html')


def qr_gen(request, x):
    if request.method == 'POST':
        data = x
        img = make(data)
        img_name = 'qr' + str(time.time()) + '.png'
        img_path = Path(settings.MEDIA_ROOT)
        img.save(str(img_path) + '/' + img_name)
        return render(request, 'index.html', {'img_name': img_name})
    return render(request, 'index.html')


def generator(request):

    user_code = "".join(random.choices(string.ascii_uppercase + string.ascii_lowercase + string.digits, k=20))
    
    form=CodeForm()
    if request.method=='POST':
        form=CodeForm(request.POST)
        if form.is_valid():
            fm = form.save(commit=False)
            fm.random_number = user_code
            fm.qr_image = qr_gen(request, fm.random_number)

            img_object = form.instance  
            user = fm.save()
            return HttpResponseRedirect("show")
            
        else:
            form=CodeForm()

        return HttpResponseRedirect('win')
    return render(request,'generate.html',{"form": form})

Вернуться на верх