表格数据未收到

时间:2016-09-03 05:48:07

标签: django forms twitter-bootstrap post

我在前端使用Django和Bootstrap来编写一个配置文件编辑模块。

来自Django的简单形式是丑陋的,所以我在表格上做了一些改进。这是HTML表单:

        <form actoin="{% url 'edit_profile' %}" method="post">
            {% csrf_token %}

            <div class="form-group row">
                <label for="chineseName" class="col-sm-2 control-label">name</label>
                <div class="col-sm-10">
                    <input name="chinese_name" class="form-control" id="chineseName" placeholder="name" value="{{form.chinese_name.value}}">
                </div>
            </div>

            <div class="form-group row">
                <label for="gender" class="col-sm-2 control-label">gender</label>
                <div class="col-sm-10">
                    <label class="radio-inline">
                        {% if form.gender.value == "M" %}
                        <input type="radio" name="gender" id="gender1" value="M" checked> Male
                        {% else %}
                        <input type="radio" name="gender" id="gender2" value="M"> Male
                        {% endif %}
                    </label>
                    <label class="radio-inline">
                        {% if form.gender.value == "F" %}
                        <input type="radio" name="gender" id="gender1" value="F" checked> Female
                        {% else %}
                        <input type="radio" name="gender" id="gender2" value="F"> Female
                        {% endif %}
                    </label>
                </div>
            </div>

            <div class="form-group row">
                <label for="age" class="col-sm-2 control-label">age</label>
                <div class="col-sm-10">
                    <input name="age" class="form-control" id="age" placeholder="年龄" value="{{form.age.value}}">
                </div>
            </div>
            <div class="form-group row">
                <label for="phone" class="col-sm-2 control-label">phone</label>
                <div class="col-sm-10">
                    <input name="phone" class="form-control" id="phone" placeholder="phone" value="{{form.phone.value}}">
                </div>
            </div>
            <div class="form-group row">
                <div class="col-sm-offset-2 col-sm-10">
                    <button type="submit" class="btn btn-default col-xs-12" id="confirm" style="display:none;">confirm</button>

                </div>
            </div>
        </form>

以某种方式request.POST没有从这个表单接收数据。当我将这个长HTML片段切换到{{form}}时,一切都很好。

所以视图功能正确。这个模板文件有什么问题,特别是表单部分吗?

2 个答案:

答案 0 :(得分:0)

您应该在表单类中添加css,例如,如果您使用的是ModelForm

self.fields['phone'].widget.attrs['placeholder'] = self.fields['phone'].label

或者如果您使用Form

phone = forms.CharField(widget=forms.TextInput(attrs={'placeholder' : 'phone')) 

答案 1 :(得分:0)

一开始看起来没什么好看的。进一步调试的一种方法是实例化表单并打印它。然后比较所有内容,尤其是<form>代码和<input>代码。