Невозможно присвоить "(<Квалификация: Объект квалификации (1)>,)": "QualificationApproval.qtitle" должен быть экземпляром "Qualification".

это моя модель утверждения квалификации

class QualificationApproval(models.Model):
    """Model definition for QualificationApproval."""

    # TODO: Define fields here
    qtitle = models.ForeignKey(Qualification, on_delete=models.CASCADE)
    ofEqualCode = models.CharField(max_length=100)
    porposDate = models.DateField()
    anNo = models.IntegerField()
    status = models.CharField(max_length= 50, default="pending")
    sec9 = models.ForeignKey(Sec9, on_delete=models.CASCADE)

    class Meta:
        """Meta definition for QualificationApproval."""

        verbose_name = 'QualificationApproval'
        verbose_name_plural = 'QualificationApprovals'

Итак, qtitle является внешним ключом квалификации проблема в том, что когда я назначаю квалификацию в QualifcationApproval, он выдает ошибку

def sec9edit(request, secId):
    if 'userId' not in request.session:
        return render(request, "front/login.html", {
            "message": "Login Required First"
        })
    user = User.objects.get(pk = request.session['userId'])
    sec1 = Sec1.objects.get(user = user )
    qualification = Qualification.objects.all()
    if request.method == "POST" and secId:
        sec9 = Sec9.objects.get(pk = secId)
        sec9.curriculum = request.POST['curriculum']
        sec9.save()

        qlrn = request.POST.getlist('qualification')
        code = request.POST.getlist('code')
        pdate = request.POST.getlist('pdate')
        anticipated = request.POST.getlist('anticipated')
        j = 0
        qa = QualificationApproval.objects.filter(sec9 = sec9)
        for q in qlrn:
            if q:
                qua = Qualification.objects.get(pk = q.split(',')[0])
                print(type(qa[j].qtitle))
                qa[j].qtitle = qua,
                qa[j].ofEqualCode = code[j],
                qa[j].porposDate = pdate[j],
                qa[j].anNo = anticipated[j],
                qa[j].sec9 = sec9
                qa[j].save()
        messages.success(request, 'Section 9 udpated successfully')
        return HttpResponseRedirect(reverse('addCentre/sec10'))
    else:
        try:
            sec9 = Sec9.objects.get(sec1= sec1)
            qa = QualificationApproval.objects.filter(sec9 = sec9)
        except:
            return render(request, "front/sec9.html", {
                "qualification": qualification
            })
        return render(request, "front/sec9.html", {
            "qualification": qualification,
            "sec9": sec9,
            "qa": qa
        })

Я печатаю qa.qtitle, он дает мне результат <class 'lrnadmin.models.Qualification'> но когда я присваиваю он показывает эту ошибку

ValueError: Cannot assign "(<Qualification: Qualification object (1)>,)": "QualificationApproval.qtitle" must be a "Qualification" instance.

у вас есть дополнительные , в конце

#                 ↓ delete this commas
qa[j].qtitle = qua,        ↓
qa[j].ofEqualCode = code[j],
qa[j].porposDate = pdate[j],
qa[j].anNo = anticipated[j],

должно быть следующим:

qa[j].qtitle = qua
qa[j].ofEqualCode = code[j]
qa[j].porposDate = pdate[j]
qa[j].anNo = anticipated[j]
Вернуться на верх