django - 如何手动设置 Django 表单的模板?
问题描述
在 Django 项目中,我有以下形式:
class MyForm(forms.Form):
field_1 = forms.BooleanField(initial=True, required=False)
field_2 = forms.ChoiceField(
initial='choice_1',
choices=(
('choice_1', 'Choice 1'),
('choice_2', 'Choice 2'),
('choice_3', 'Choice 3')
)
)
在模板中,我只是使用{{ form }}
. 表单使用浏览器默认值呈现。但是,对于表单,我确实有一个非常精确的 HTML 标记。它是这样的:
<form action="/" method="POST">
<div class="form-field">
<div class="my-checkbox">
<input type="checkbox" id="field-1" value="">
<label for="field-1">Field 1 (Recommended)</label>
</div>
</div>
<div class="form-field">
<label for="field-2" class="required">Field 2</label>
<select class="my-select" id="field-2" required="required">
<option value="choice_1" selected="selected">Choice 1</option>
<option value="choice_2">Choice 2</option>
<option value="choice_3">Choice 3</option>
</select>
</div>
</form>
我正在努力为字段添加包装容器,以及如何设置字段 1 的默认值(默认情况下应检查)。如何使用 Django 做到这一点?谢谢你的帮助。
解决方案
你很亲密。您可以通过定义每个字段本身来更加动态地呈现表单。使用 Django内置模板标签来根据您的需要呈现表单,如下所示:
<div id="form-wrapper">
<form method="POST" class="post-form" id="form-id">
{% csrf_token %}
<div id="field_1">{{ form.field_1 }}</div>
<div id="field_2">{{ form.field_2 }}</div>
</form>
</div>
这样,您可以分配单个 cssids
并classes
根据需要对其进行样式设置。
推荐阅读
- laravel - Laravel 作曲家安装无法正常工作
- python - 使用 Python 从 Json 文件中计算聚合值
- swift - 无法将类型 [NSObject] 的值分配给类型 NSObject
- c# - 在 Unity 中存储对象特定信息
- vmware-clarity - 清晰地使用Angular组件clrForm时如何使表单中输入字段的宽度为100%
- vba - 如果数据存在于特定列之后,则映射所有列
- javascript - 如何从 Promise 中获取值?相反,我得到了 Promise
- ruby-on-rails - 在 Rails 中验证依赖创建
- angular - 使用 Angular HTML 中的主机名访问当前 url
- javascript - 将 Adal.js 与自定义登录页面一起使用