Django模型表单

这是一个用于通过使用模型创建HTML表单的类。这是一种无需编写HTML代码即可创建表单的有效方法。
Django会自动为我们完成此任务, 以减少应用程序开发时间。例如, 假设我们有一个包含各种字段的模型, 则无需在表单文件中重复这些字段。
因此, Django提供了一个帮助器类, 该类允许我们从Django模型创建Form类。
让我们来看一个例子。
Django ModelForm示例
首先, 创建一个包含字段名称和其他元数据的模型。它可以用来创建数据库和动态HTML格式的表。
// model.py

from __future__ import unicode_literalsfrom django.db import modelsclass Student(models.Model):first_name = models.CharField(max_length=20)last_name= models.CharField(max_length=30)class Meta:db_table = "student"

该文件包含一个继承ModelForm的类, 并提及为其创建HTML表单的模型名称。
// form.py
from django import formsfrom myapp.models import Studentclass EmpForm(forms.ModelForm):class Meta:model = Studentfields = "__all__"

编写一个视图函数以从Forms.py加载ModelForm。
//views.py
from django.shortcuts import renderfrom myapp.form import StuFormdef index(request):stu = StuForm()return render(request, "index.html", {'form':stu})

//urls.py
from django.contrib import adminfrom django.urls import pathfrom myapp import viewsurlpatterns = [path('admin/', admin.site.urls), path('index/', views.index), ]

【Django模型表单】最后, 创建一个包含以下代码的index.html文件。
< !DOCTYPE html> < html lang="en"> < head> < meta charset="UTF-8"> < title> Index< /title> < /head> < body> < form method="POST" class="post-form"> {% csrf_token %}{{ form.as_p }}< button type="submit" class="save btn btn-default"> Save< /button> < /form> < /body> < /html>

运行服务器 使用python manage.py runserver命令运行服务器。
之后, 通过localhost:8000 / index URL访问模板, 它将向浏览器产生以下输出。
输出:
Django模型表单 嗯, HTML表单是自动创建的。这是Django的功能。

    推荐阅读