css - Django Forms 模板设计类

标签 css django forms templates

Django Forms 框架非常出色,仅通过以下内容即可呈现整个表单。

{{ form.as_p }}

对于一个注册表,上面的转换为:

<p><label for="id_username">Username:</label> <input id="id_username" type="text" name="username" maxlength="30" /> Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores).</p>
<p><label for="id_email">Email:</label> <input type="text" name="email" id="id_email" /></p>
<p><label for="id_firstname">Firstname:</label> <input type="text" name="firstname" id="id_firstname" /></p>
<p><label for="id_lastname">Lastname:</label> <input type="text" name="lastname" id="id_lastname" /></p>
<p><label for="id_password1">Password:</label> <input type="password" name="password1" id="id_password1" /></p>
<p><label for="id_password2">Password confirmation:</label> <input type="password" name="password2" id="id_password2" /></p>

但是为了设计我想给表单中的每个元素添加类,如下:

<p><label for="id_email" class="field-title">Email:</label> <input type="text" name="email" id="id_email" /></p>
<p><label for="id_firstname" class="field-title">Firstname:</label> <input type="text" name="firstname" id="id_firstname" /></p>
<p><label for="id_lastname" class="field-title">Lastname:</label> <input type="text" name="lastname" id="id_lastname" /></p>
<p><label for="id_password1" class="field-title">Password:</label> <input type="password" name="password1" id="id_password1" /></p>
<p><label for="id_password2" class="field-title">Password confirmation:</label> <input type="password" name="password2" id="id_password2" /></p>

将这些类添加到单个表单元素的标准方法是什么。是否需要手动在模板中扩展表单来添加这些类(在这种情况下,表单的变化也应该在模板中做出相应的变化);这太费力了,特别是因为您需要添加 if errors,还为每个字段显示错误。

还是从表单类或 View 中提供一些类更好,这看起来有点难看。

我不太了解 css,应该可以在给定的表单类中为指定的标签定义这些类。如果是,这应该是最好的方法。

如何将设计器类添加到表单元素。您认为添加它们的最佳方式是什么。

最佳答案

如果您只需要所有标签都有一个特定的类,最好的方法是稍微更改标记和 CSS。放一个<div>与您的类(class)围绕表格:

<div class="field-title">
    {{ form.as_p }}
</div>

并使CSS定义如下:

div.field-title label {
    ...
}

关于css - Django Forms 模板设计类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1146958/

相关文章:

html - 使用透视和变换时如何控制z-index?

jquery - 执行基于条件CSS样式的jquery命令?

python - django admin 中的外键字段

iphone - 在 Objective-C 中从模型生成表单(a django ModelForms)

django - 确定 django 中 session 的年龄

PHP htmlentities 不足以阻止黑客从表单中注入(inject) html

html - 如何在 IE11 中去除 svg 图像顶部和底部的多余空间

css - 简单的文本输入框 "autosuggest"脚本-如何与css重叠

javascript - onsubmit ="return false"是什么意思? (JavaScript,jQuery)

html - 如何使用 XSLT 生成 HTML 表单?