如何使用Django Widget Tweaks来定制Django表单

如何使用Django Widget Tweaks来定制Django表单

Django表单是一个伟大的功能,只需几行代码就能创建可用的表单。但Django并不允许我们轻易地编辑表单以获得好的设计。在这里,我们将看到自定义Django表单的方法之一,这样它们就能按照我们的愿望在HTML页面上看起来。基本上,我们将检查将我们自己的自定义css、类或id加入到表单的各个字段的方法。

比方说,我们有一个简单的Django表单,将有四个字段。

  • First Name
  • Last Name
  • Username (available default)
  • Password (available default)
  • Confirm Password (available default)

我们不打算讨论如何创建这个表单,而是要看看如何定制Django表单的前端。要在Django中创建一个表单,你可以查看 – 如何使用Django表单创建一个表单?

最初的Django表单(可用的默认看起来像)

如何使用Django Widget Tweaks来定制Django表单?

默认的Django表单

其中将有一个简单的代码,如

{{form}}
 <input type="submit" value="submit">

当然,Django默认为我们提供了很多默认方法,比如使用form.as_p,看起来像

如何使用Django Widget Tweaks来定制Django表单?

使用as_p的Django表格

这将有一个简单的代码,如

{{form.as_p}}
<input type="submit" value="submit">

但我们需要为表单添加自定义类和CSS

如何使用Django Widget Tweaks来定制Django表单

因此,让我们看看如何使它看起来像这样的好。

如何使用Django Widget Tweaks来定制Django表单?

Django表单输入定制

所以我们要用Django Widget Tweaks来实现它。让我们用pip安装django-widget-tweaks。

pip install django-widget-tweaks

现在去看settings.py中的INSTALLED_APPS
并在INSTALLED_APPS中添加widget_tweaks。

INSTALLED_APPS = [
   'django.contrib.auth',

#...........(some more apps already here maybe)......

'widget_tweaks',

#...........(some more apps already here maybe)......
]

现在我们已经安装了Django widget tweaks,让我们把它导入到我们正在工作的HTML文件中。
write this

{%加载widget_tweaks %}

在你的HTML页面的顶部,我们必须简单地改变每个字段。

{% load widget_tweaks %}
  
<div class="form-group">
  // first_name is the name by which first name is created in django forms
  {% render_field form.first_name class="form-control" placeholder="First Name" type="text" %}
</div>
  
<div class="form-group">
   // last_name is the name by which last name is created in django forms
  {% render_field form.last_name type="text" class="form-control" placeholder="Last Name" %}
</div>
  
<div class="form-group">
   // username is the default name of username in django forms
  {% render_field form.username type="text" class="form-control" id="exampleInputUsername" placeholder="Username" %}
</div>
  
<div class="form-group">
   // password1 is the default name of password in django forms
  {% render_field form.password1 type="password" class="form-control" id="exampleInputPassword" placeholder="Password" %}
</div>
  
<div class="form-group">
   // password2 is the default name of confirm password in django forms
  {% render_field form.password2 type="password" class="form-control" id="exampleInputPassword1" placeholder="Confirm Password" %}
</div>
  
<div>
  <button type="submit" value="Submit" > Register </button>
</div>

每个字段的名称已经在代码中用”//”解释。在CSS文件中,我们将有所有的代码,用于按类别或ID定制每个文件。

所以让我们看看Django的调整是如何帮助我们的 在每个字段中,我们都有自己的类,因为我们可以根据自己的选择添加任何CSS。因此,我们只需用css设计HTML,并在Django中使用它,只需用render_field和form.field_name替换输入标签,并在最后用{% %}来设计它。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Django 教程