/ modelo / matricula save()处的TypeError缺少1个必需的位置参数:“ self”

时间:2019-07-24 19:49:41

标签: django python-3.x

Hola como estas soy nuevo en django bueno mi asunto es que quiero guardar en mi tabla matriculas las llaves de los estudiantes el grupo y el anyo pero me dice save()缺少1个必需的位置参数:'self'entoces no se < / p>

def matricula(request):

    if request.method=='POST':

        form=matriculaForm(request.POST)
        if form.is_valid():
            matricula=matriculaForm.save()
            matricula.save()
            return redirect('correcto')
    else:
        form=matriculaForm()
        return render(request,'matricula.html',{'form':matriculaForm})

esa es la vista

模特儿

class matricula(models.Model):
    codigo=models.ForeignKey(alumno,default=None,null=False,on_delete=models.CASCADE)
    grado=models.ForeignKey(grado,default=None,null=False,on_delete=models.CASCADE)
    anyo=models.ForeignKey(anyo,default=None,null=False,on_delete=models.CASCADE)

1 个答案:

答案 0 :(得分:0)

您应使用 instance 形式调用.save(),例如:

def matricula(request):
    if request.method=='POST':
        form=matriculaForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('correcto')
    else:
        form=matriculaForm()
        return render(request,'matricula.html',{'form': form})

第二次在表单结果上调用.save()是不必要的,因为form.save()已将其保存到数据库中(当然,除非您通过commit=False,或者您已经重写了save()方法)。

  

注意:根据PEP-8 naming conventions,类以大写字母开头。因此,我建议您将 matricula 重命名为Matricula,并将 matriculaForm 重命名为MatriculaForm