如何为表单字段设置django注释的格式?

如何为表单字段设置django注释的格式?

问题描述:

我正在使用由django为我生成的表单。在我的博客中发布帖子后,我将它用作评论表单。如何为表单字段设置django注释的格式?

目前它呈现很好,但它不很好地对齐。 这就是我所拥有的。 alt text 这就是我想要的。 alt text

感谢

编辑:这是结果,当我的用户{{form.as_table}}

alt text

+0

你如何在模板中渲染你的表单? – 2010-12-09 11:02:47

+0

目前全部都是自动的。我没有指定任何东西。如果我在我的模板/注释目录中创建一个form.html文件并使用{{form.as_p}},那么它呈现隐藏字段。 :P – darren 2010-12-09 11:57:17

发布我的解决方案希望它能帮助别人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。

您的形式inputtextarea字段,以便你的CSS将是:

input, textarea{ 
    width:350px; 
} 

不要忘记你的HTML模板的顶部调用你的CSS文件:

<link rel="stylesheet" type="text/css" href="{% static 'styles/form.css' %}"> 

下面是我对自己的形式的一个快照:

enter image description here