我有一个 ModelForm 用于带有 Integer 字段的模型,传递给表单对象的数据总是将 form.is_valid()
返回为 false。该代码适用于所有其他 ModelForm。我认为这个问题与 IntegerField
有关。我检查了传递给表单的数据;看起来不错。
request.POST 数据是:
form.py: view.py models.py:class StudentIELTSDetailsForm(forms.ModelForm):
class Meta:
model=StudentIELTSDetails
fields = ["studentIELTSReading", "studentIELTSWriting", "studentIELTSSpeaking",
"studentIELTSListening","studentEmail",]
labels={"studentIELTSReading":"Reading", "studentIELTSWriting":"Writing",
"studentIELTSSpeaking":"Speaking", "studentIELTSListening":"Listening"}
def saveStudentIELTS(request):
messsage=""
if request.method=="POST":
username=request.user.username
student=StudentIELTSDetails.objects.filter(studentEmail=username).exists()
print(student)
if student is False :
form=StudentIELTSDetailsForm(request.POST)
print(request.POST)
if form.is_valid():
form.save()
messsage="IELTS details saved Succesfully"
else:
messsage="user IELTS details already submitted"
return JsonResponse({'message3':messsage})
class StudentIELTSDetails(models.Model):
studentEmail=models.ForeignKey(StudentPersonalDetails, on_delete=models.CASCADE)
studentIELTSReading=models.IntegerField(choices=ieltsScore, default='Low')
studentIELTSWriting=models.IntegerField(choices=ieltsScore, default='Low')
studentIELTSSpeaking=models.IntegerField(choices=ieltsScore, default='Low')
studentIELTSListening=models.IntegerField(choices=ieltsScore, default='Low')