django form_isvalid()为float字段返回错误'输入整数'

时间:2016-05-09 23:38:02

标签: python django nginx

我在models.py中有以下几行:

            ('total_marks_tenth', models.IntegerField()),
            ('obtained_marks_tenth', models.FloatField()),
            ('board_twelvth', models.TextField(default='')),
            ('subjects_twelvth', models.TextField(default='')),
            ('total_marks_twelvth', models.IntegerField()),
            ('obtained_marks_twelvth', models.FloatField()),

我跑了manage.py makemigarationsmanage.py migrate。数据库中的条目还显示它是一个双字段。但是,在nginx服务器上运行应用程序时,我收到以下错误: enter image description here

请帮我解决这个问题。

编辑:

我在我的应用程序中使用了modelform:

class StudentForm(forms.ModelForm):

    class Meta:
        model = Student
        fields = '__all__'

令人惊讶的是,当我在本地系统上运行相同配置的相同应用程序时,它运行正常。但是,在nginx服务器上托管后,我收到了所描述的错误。

这是模板代码:

<div class='form-group internal'>
                        <div class='col-md-6'>

                            {% render_field form.obtained_marks_tenth class='form-control' placeholder='Obtained Marks' type='text' %}
                            {% if form.obtained_marks_tenth.errors %}
                            <div class="alert alert-danger tpad">
                                {{ form.obtained_marks_tenth.errors.as_text }}
                            </div>

                            {% endif %}
                        </div>
                    </div>

视图代码为:

def apply(request):
    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})


    return render(request, 'apply.html',{'form' : StudentForm()})

3 个答案:

答案 0 :(得分:2)

此错误仅出现在IntegerField中,您可能会在某处混淆字段名称并在表单中使用整数字段。

答案 1 :(得分:1)

更改生产中的代码后,必须重新启动服务器才能使更改生效。

如果要使用Apache和mod_wsgi进行部署,那么重新启动Apache应该可以正常工作。

如果您使用Nginx(或其他服务器)作为反向代理进行部署,则重新启动它将无法正常工作。您需要重新启动Django服务器,例如gunicorn或uWSGI。

答案 2 :(得分:0)

此问题仅来自forms.py。在表格中,您可能在该字段中使用了错误的参数。