更改不会反映在django中的form.isvalid()中

时间:2016-05-09 05:12:03

标签: mysql django

我正在使用django模型。在将站点部署到服务器之前,我在表中有两列:

total_marks_twelvth      | int(11)       | NO   |     | NULL    |                |
| obtained_marks_twelvth   | int(11)        | NO   |     | NULL    |                |

上传后,我不得不将obtained_marks_twelvth更改为浮动。现在,改变反映在表格中:

| total_marks_twelvth      | int(11)       | NO   |     | NULL    |                |
| obtained_marks_twelvth   | double        | NO   |     | NULL    |                |

但是,问题是在检查视图中的form.is_valid()方法时没有反映出上述变化。

if form.is_valid():

        name = request.POST.get("name")

        form.save()

上述方法返回false,并抛出错误:

* Enter a whole number.

在浏览器中。

之前的模型是:

total_marks_twelvth = models.IntegerField()
obtained_marks_twelvth = models.IntegerField()

我把它改为:

 total_marks_twelvth = models.IntegerField()
 obtained_marks_twelvth = models.FloatField()

在此之后我运行了makemigrationsmigrate。它成功执行了。

所以,我在这里得出的结论是变化反映在数据库中,而不是模型上。为什么会这样?请帮忙解决这个问题。

编辑:

观点是:

if request.method == 'POST':
    form = StudentForm(request.POST)

    if form.is_valid():
        name = request.POST.get("name")

        form.save()
        print "Form is saved successfully."
        return render(request, 'success.html',{'name' : name})
    else:
        print "Something went wrong"
        print form.errors
        return render(request, 'apply.html',{'form' : form})

表格是:

class StudentForm(forms.ModelForm):

    class Meta:
        model = Student
        fields = '__all__'

此模型包含学生模型类:

class Student(models.Model):
"""here goes model for users"""

def __str__(self):
    return "%s %s" % ( self.name,self.enrollment_no)
 total_marks_twelvth = models.IntegerField()
 obtained_marks_twelvth = models.FloatField()

看起来django没有使用最新的迁移,但更改反映在数据库中。

我得到的错误是:

enter image description here

0 个答案:

没有答案