如何为表单字段设置django注释的格式?
我正在使用由django为我生成的表单。在我的博客中发布帖子后,我将它用作评论表单。如何为表单字段设置django注释的格式?
目前它呈现很好,但它不很好地对齐。 这就是我所拥有的。 这就是我想要的。
感谢
编辑:这是结果,当我的用户{{form.as_table}}
发布我的解决方案希望它能帮助别人oneday。 我知道你会用CSS来设计字段,但不知道如何将类分配给每个项目。但是,如果您查看提供的默认模板,您会注意到在foreach循环中使用if语句将错误类分配给了一个字段,该foreach循环会自动生成表单中的每个字段。 即
{% 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中设置一个通用表单类来对其进行设置。 即
form {
width: 350px;
padding: 20px;
border: 1px solid #270644;
}
看一看Customizing the form template。这是一个可能的解决方案。
也许你可以简单地使用CSS来设置你的表单的样式和render the form。 (即as_table())。
使用默认{% 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
因此,您可以使用目标在你的CSS样式表label
:
label {
width: 15%;
}
我知道这是一个有点晚,但对于其他人,你可以试试这个
<table>
{{ form.as_table }}
</table>
它修复了恼人的格式问题,看起来不错。
this post中有详细的方法,但是,我发现有时小部件属性可能无法按照您的方式工作。
不过,最好的和简单的方法是使用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' %}">
下面是我对自己的形式的一个快照:
你如何在模板中渲染你的表单? – 2010-12-09 11:02:47
目前全部都是自动的。我没有指定任何东西。如果我在我的模板/注释目录中创建一个form.html文件并使用{{form.as_p}},那么它呈现隐藏字段。 :P – darren 2010-12-09 11:57:17