【问题标题】:how to style this django form?如何设置这个 django 表单的样式?
【发布时间】:2018-03-23 10:36:00
【问题描述】:
{% extends 'base.html' %}
{% block head %}
{% endblock head %}
{% block body %}
    <div>
        <div class="container" id="outer">
    <div>
        <h1>User Login Form</h1>
    </div>
    <div>
        <form method="post">

            {% csrf_token %}
            {{ form.as_p }}
            <button type="submit" class="btn btn-block">Login</button>
        </form>
      </div>
</div>
</div>
{% endblock body %}

我在没有使用forms.py 的情况下编写了这段代码,并且在设置forms.so 的样式时遇到了麻烦。请帮我解决我的问题。

【问题讨论】:

  • 有什么问题?除了要显示的内容之外,您还看到了什么?
  • 我看到一个简单的表单,其中只包含用户名和密码字段。我想让它看起来更好看。

标签: python django python-3.x


【解决方案1】:

当您为表单显示为

{{ form.as_p }}

您只是在它们自己的段落标签中显示所有表单元素。

设置表单样式的一种方法是在自己的 div 中显示每个表单元素,如下所示,

{% for field in form %}
    <div>
        {{ field.errors }}
        {{ field.label_tag }} {{ field }}
     </div>
{% endfor %}

将它们放在自己的 div 中可以让您更好地控制它们的显示。 同样,您可以在 forms.py 的定义中为元素提供自己的类。例如,如果我有一个带有用户名字段的登录表单,我可以执行以下操作

username = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'})) 

这将创建一个看起来像这样的 HTML 元素

<div> username <input type="text" class="form-control"></div>

然后,您可以使用正确的类来设置表单样式。更多信息在这里:https://docs.djangoproject.com/en/1.11/topics/forms/

【讨论】:

  • 是否可以设置只有大部分代码意味着 {{form.as_p}}
  • 我只想在我从 django.contrib.auth.views import login 获得的内置登录表单中设置样式
  • 您希望以何种方式设置表单样式?因为 {{form.as_p}} 将生成表单的所有 html,并且必须在 forms.py 中进行自定义,如图所示
  • 表示我想让我的登录页面看起来更有吸引力
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-15
  • 2013-09-19
  • 2017-06-20
  • 2018-05-19
  • 2019-01-07
相关资源
最近更新 更多