首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法赋值"(< Qualification : Qualification (1)>,)":"QualificationApproval.qtitle“必须是"Qualification”实例

无法赋值"(< Qualification : Qualification (1)>,)":"QualificationApproval.qtitle“必须是"Qualification”实例
EN

Stack Overflow用户
提问于 2021-11-15 12:06:45
回答 1查看 25关注 0票数 0

这是我的资格审批模型

代码语言:javascript
复制
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中分配资格时,它给了我一个错误

代码语言:javascript
复制
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'>,但当我赋值它时,显示以下错误

代码语言:javascript
复制
ValueError: Cannot assign "(<Qualification: Qualification object (1)>,)": "QualificationApproval.qtitle" must be a "Qualification" instance.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-15 18:03:20

在末尾有额外的,

代码语言:javascript
复制
#                 ↓ delete this commas
qa[j].qtitle = qua,        ↓
qa[j].ofEqualCode = code[j],
qa[j].porposDate = pdate[j],
qa[j].anNo = anticipated[j],

应该是这样的:

代码语言:javascript
复制
qa[j].qtitle = qua
qa[j].ofEqualCode = code[j]
qa[j].porposDate = pdate[j]
qa[j].anNo = anticipated[j]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69974166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档