Django 中的表单小组件
在本文中,我们将了解如何在 Django 表单中使用小组件。小组件对于改进前端非常有帮助。小组件是 Django 表单呈现的 html 元素,文本框、输入框、密码输入框等,都是小组件。
首先,让我们创建一个 Django 项目和一个应用程序。我使用名称“tutorial14”创建了该项目,并使用名称“djangoFormWidget”创建了该应用程序。
在settings.py中添加应用程序,并在项目的urls.py中包含应用程序的 URL。
创建所有基本文件和文件夹,如 Templates、home.html、forms.py。
示例
在应用程序的urls.py中 −
from django.urls import path,include from . import views urlpatterns = [ path('',views.home,name="home") ]
它将创建一个用于呈现视图的基本 URL。
在views.py中 −
from django.shortcuts import render from .forms import CommentForm # Create your views here. from django.views.decorators.csrf import csrf_exempt @csrf_exempt def home(request): if request.method=='POST': form=CommentForm(request.POST) if form.is_valid(): form.save() commentform=CommentForm() return render(request,'home.html',{"commentform":commentform})
在此,我们导入了表单并处理了其 POST 和 GET 请求。
在 POST 中,我们保存数据,在 GET 中,我们向前端发送表单。
在models.py中 −
from django.db import models # Create your models here. class CommentModel(models.Model): comment=models.CharField(max_length=500)
在此,我们创建了将在表单中使用的模型。我们需要此模型才能使用表单。
在home.html中 −
<!DOCTYPE html> <html> <head> <title>TUT</title> </head> <body> {% for fm in commentform %} <form method="post"> {%csrf_token%} {{fm.errors}}<br> {{fm.label}}:{{fm}}<br> {%endfor%} <button type="submit">Submit</button> </form> </body> </html>
这是一个简单的前端,我们在此呈现我们的表单。
在forms.py中 −
from django import forms from .models import CommentModel class CommentForm(forms.Form): comment=forms.CharField(widget=forms.Textarea(attrs={'class':'comment','title':'add comment'})) # this is the line which is used for widget, here I added TextArea widget you can see we also assigned class to widget using attrs attribute. def save(self): data=self.data modelRef=CommentModel(comment=data['comment']) modelRef.save()
它就是我们创建表单的地方。我们使用了内置 Django 表单小部件来呈现表单中的文本区域。
输出
广告