我正在尝试使用django和django-bootstrap3进行表单POST。表单包含以下字段:姓名,电子邮件,电话,公司,主题和消息。模板代码如下。
问题:如果我不想使用表单的所有字段来生成模板,例如只使用名称,电子邮件和电话,如何实现?我想我可以过滤表格,但我不知道该怎么做。
{% load bootstrap3 %}
{% block contact-page %}
<div class="container">
<div class="center">
<h2>Drop Your Message</h2>
<p class="lead">We are looking forward to hearing from you.</p>
</div>
<div class="row contact-wrap">
<div class="status alert alert-success" style="display: none"></div>
<form action="" method="post" class="form">
{% bootstrap_form form %}
{% buttons %}
<button type="submit" class="btn btn-primary">
{% bootstrap_icon "star" %} Submit
</button>
{% endbuttons %}
</form>
</div><!--/.row-->
</div><!--/.container-->
{% endblock %}}
答案 0 :(得分:0)
使用django-bootstrap3,您可以使用{% bootstrap_field form.fieldname %}
标记仅呈现特定字段。但是,如果某些省略的字段是必需的,那么这可能会导致错误,因为表单会将省略的字段视为空,但仍会将其检查为有效。
清理方法是在表单中省略这些字段。使用Meta.fields
中的ModelForm
参数或从常规Form
中删除字段。
答案 1 :(得分:0)
我能理解你需要什么。您必须添加name, email and phone
。
想象一下,如果你使用name, email, phone, company, subject, and message
,django-bootstrap3提供了一个使用bootstrap_field
分别添加字段的选项。
#models.py
class CustomUser(models.Model):
name = models.CharField(max_length=100)
email = models.CharField(max_length=100)
phone = models.CharField(max_length=100)
company = models.EmailField(max_length=150)
subject = models.CharField(max_length=100)
message = models.CharField(max_length=100)
# template.html
{% load bootstrap3 %}
<form action="" role="form" method="post">{% csrf_token %}
{% bootstrap_field form.name placeholder='Name' %}
{% bootstrap_field form.email placeholder='Email' %}
{% bootstrap_field form.phone placeholder='Phone' %}
{% buttons submit='OK' reset="Cancel" %}{% endbuttons %}
</form>
我认为你明白了。
答案 2 :(得分:0)
我得到了答案。谢谢蒂姆。
{% load bootstrap3 %}
{% block contact-page %}
<div class="container">
<div class="center">
<h2>Drop Your Message</h2>
<p class="lead">We are looking forward to hearing from you.</p>
</div>
<div class="row contact-wrap">
<div class="status alert alert-success" style="display: none"></div>
<form action="" method="post" class="form">
<!--{% bootstrap_form form %}-->
<div class="col-sm-5 col-sm-offset-1">
{% for field in form %}
{% if field.name != 'subject' and field.name != 'message' %}
{% bootstrap_field field %}
{% endif %}
{% endfor %}
</div>
<div class="col-sm-5">
{% for field in form %}
{% if field.name == 'subject' or field.name == 'message' %}
{% bootstrap_field field %}
{% endif %}
{% endfor %}
{% buttons %}
<button type="submit" class="btn btn-primary">
{% bootstrap_icon "star" %} Submit
</button>
{% endbuttons %}
</div>
</form>
</div><!--/.row-->
</div><!--/.container-->
{% endblock %}}
&#13;