7

我正在使用 django 为我生成的表单。在我的博客中发表帖子后,我将其用作评论表单。

目前它渲染得很好,但它没有很好地对齐。这就是我所拥有的。替代文字 这就是我想要的。替代文字

谢谢

编辑:这是我使用 {{ form.as_table }} 时的结果

替代文字

4

5 回答 5

8

我知道这有点晚了,但对于其他人,你可以试试这个

<table>
{{ form.as_table }}
</table>

它解决了烦人的格式问题,看起来不错。

于 2014-07-03T21:41:56.150 回答
4

发布我的解决方案,希望有一天能对其他人有所帮助。我知道您会使用 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;
}
于 2010-12-10T21:50:51.273 回答
3

查看自定义表单模板。这是一种可能的解决方案。

也许您可以简单地使用 CSS 来设置表单样式并根据需要呈现表单。(即as_table())。

于 2010-12-09T11:06:35.657 回答
2

使用默认值{% 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%;
}
于 2011-11-11T19:49:22.510 回答
0

这篇文章中详细介绍了多种方法,但是,我发现有时小部件属性可能无法按照您想要的方式工作。

不过,最好和最简单的方法是使用 CSS:

渲染包含表单字段的页面并进行一些检查(例如,右键单击>检查或在 Chrome 上按 F12)以了解表单在渲染时生成的 html 标记。然后你可以轻松地编写你的 CSS。

您的表单中有inputtextarea字段,因此您的 CSS 将是:

input, textarea{
    width:350px;
}

不要忘记在您的 html 模板顶部调用您的 CSS 文件:

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

这是我自己的表单的快照:

在此处输入图像描述

于 2017-10-30T19:49:02.907 回答