Django 表单插件和库

2023-04-11 00:00:00 django 插件 表单

Django 提供了一些表单相关的插件和库,以下是一些常用的:

  1. Django Crispy Forms:一个帮助你使用 Bootstrap 样式的表单插件,让你的表单看起来更美观、更专业。

使用方法:

安装:

pip install django-crispy-forms

settings.py 配置:

INSTALLED_APPS = [
  # ...
  'crispy_forms',
]

CRISPY_TEMPLATE_PACK = 'bootstrap4'

在表单类中使用:

from django import forms
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Submit

class ContactForm(forms.Form):
    name = forms.CharField(label='Your name', max_length=100)
    message = forms.CharField(widget=forms.Textarea)

    def __init__(self, *args, **kwargs):
        super(ContactForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.form_method = 'post'
        self.helper.add_input(Submit('submit', 'Submit'))
  1. Django Formtools:提供一些让表单开发更容易的工具,比如分步骤表单、表单向导等。

使用方法:

安装:

pip install django-formtools

在 urls.py 中使用:

from django.urls import path
from formtools.wizard.views import SessionWizardView

from .forms import ContactForm1, ContactForm2, ContactForm3

contact_forms = [ContactForm1, ContactForm2, ContactForm3]

urlpatterns = [
    path('contact/', SessionWizardView.as_view(contact_forms)),
]
  1. Django Bootstrap4:提供一些帮助使用 Bootstrap4 样式的工具和标签。

使用方法:

安装:

pip install django-bootstrap4

在 settings.py 中配置:

INSTALLED_APPS = [
    # ...
    'bootstrap4',
]

# 如果需要使用原生的 Bootstrap 文件,可以配置为:
BOOTSTRAP4 = {
    'include_jquery': True,
    'javascript_in_head': True,
    'css_url': '/static/bootstrap/css/bootstrap.min.css',
    'javascript_url': '/static/bootstrap/js/bootstrap.min.js',
}

在表单类中使用:

from django import forms
from bootstrap4.forms import BootstrapFormMixin

class ContactForm(forms.Form, BootstrapFormMixin):
    name = forms.CharField(label='Your name', max_length=100)
    message = forms.CharField(widget=forms.Textarea)

在模板中使用:

{% extends 'base.html' %}

{% load bootstrap4 %}

{% block content %}
  <form method="post">
    {% csrf_token %}
    {% bootstrap_form form %}
    {% buttons %}
      <button type="submit" class="btn btn-primary">Submit</button>
    {% endbuttons %}
  </form>
{% endblock %}

以上是 Django 表单相关的一些插件和库,其中 Django Crispy Forms 和 Django Formtools 可以让表单的开发更简单快捷,Django Bootstrap4 可以让表单看起来更美观、更专业。

相关文章