我正在使用django建立一个网站,但我的模型有问题。这是我的html文件中的工作表单代码:
<form class="form-horizontal" role="form" method="post" action="">
<div class="form-group">
{% csrf_token %}
{{ form.as_p }}
</div>
<input type="submit" value="Inschrijven!" class="btn btn-primary" />
</form>
如果我使用此代码,一切正常,当我填写表格并按发送时,我可以看到管理页面中的信息。
我现在尝试使用bootstrap设置样式:
<form class="form-horizontal" role="form" method="post" action="">
{% csrf_token %}
{% for field in form %}
<div class="form-group">
<label class="col-sm-4 control-label">{{ field.label }}</label>
<div class="col-sm-4">
<input type="text" class="form-control" placeholder="{{field.label}} ingeven">
</div>
</div>
{% endfor %}
<input type="submit" value="Inschrijven!" class="btn btn-primary">
</form>
现在我有一个很好的引导程序布局,但如果我填写表单,我就无法在管理员页面上看到这些信息。 有人知道我如何解决这个问题,所以我可以保持良好的布局,仍然可以使用我的表格吗?
答案 0 :(得分:0)
当您输出Django HTML表单时,您会注意到它创建了具有以下 ID 和 Name 属性的输入元素。
例如
class MyForm...
name = ...
age = ...
HTML
<input type='text' id='id_name' name='name' ...
<input type='text' id='id_age' name='age'...
要解决您的问题,请在HTML中将以下属性添加到您正在生成的HTML输入字段
id="id_{{field.name}}" name="{{field.name}}"
<强>推理强>:
提交表单后,浏览器将以name=value
对的形式发送表单编码数据,然后以request.POST
中的dict形式到达,当输入Django表单时,它将填写表单将Django表单属性名称与POST值匹配。