我在前端使用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}}时,一切都很好。
所以视图功能正确。这个模板文件有什么问题,特别是表单部分吗?
答案 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>
代码。