我正在使用 django 为我生成的表单。在我的博客中发表帖子后,我将其用作评论表单。
目前它渲染得很好,但它没有很好地对齐。这就是我所拥有的。 这就是我想要的。
谢谢
编辑:这是我使用 {{ form.as_table }} 时的结果
我正在使用 django 为我生成的表单。在我的博客中发表帖子后,我将其用作评论表单。
目前它渲染得很好,但它没有很好地对齐。这就是我所拥有的。 这就是我想要的。
谢谢
编辑:这是我使用 {{ form.as_table }} 时的结果
我知道这有点晚了,但对于其他人,你可以试试这个
<table>
{{ form.as_table }}
</table>
它解决了烦人的格式问题,看起来不错。
发布我的解决方案,希望有一天能对其他人有所帮助。我知道您会使用 css 设置字段的样式,但不确定如何将类分配给每个项目。但是,如果您查看提供的默认模板,您会注意到错误类是使用 foreach 循环中的 if 语句分配给字段的,该循环会自动生成表单中的每个字段。 IE
{% for field in form %}
< p{% if field.errors %}
class="error"
{% endif %}
{{ field.label_tag }}<'/' p>
{% endfor %}
所以我添加了这个功能。
< p{% if field.errors %}
class="error"
{% endif %}
{% ifequal field.name "honeypot" %}
id="hide"
{% else %}
id="left"
{% endifequal %}>
{{ field.label_tag }}<'/' p>
我的 CSS 存在
#hide{
display:none;
}
#left{
width: 200px;
text-align: left;
}
#right{
width: 300px;
text-align: left;
}
现在您可以设置您的类,您可以轻松地在您的 css 文件中设置您的类或 id。这是为了评论。如果您使用 {{ form.as_p }} 或 {{ form.as_table }} 来生成表单,那么您只需在 css 中设置一个通用表单类来设置它的样式。 IE
form {
width: 350px;
padding: 20px;
border: 1px solid #270644;
}
使用默认值{% render_comment_form for app.model %}
将生成:
<p>
<label for="id_name">Name</label>
<input id="id_name" type="text" name="name" maxlength="50">
</p>
<p>
<label for="id_email">Email address</label>
<input type="text" name="email" id="id_email">
</p>
... etc
因此,您可以使用以下方式label
在 CSS 样式表中定位:
label {
width: 15%;
}
这篇文章中详细介绍了多种方法,但是,我发现有时小部件属性可能无法按照您想要的方式工作。
不过,最好和最简单的方法是使用 CSS:
渲染包含表单字段的页面并进行一些检查(例如,右键单击>检查或在 Chrome 上按 F12)以了解表单在渲染时生成的 html 标记。然后你可以轻松地编写你的 CSS。
您的表单中有input
和textarea
字段,因此您的 CSS 将是:
input, textarea{
width:350px;
}
不要忘记在您的 html 模板顶部调用您的 CSS 文件:
<link rel="stylesheet" type="text/css" href="{% static 'styles/form.css' %}">
这是我自己的表单的快照: