Django 模型窗体是一个用于将模型直接转换为Django形式的类。如果您正在构建一个数据库驱动的应用程序,那么您很可能拥有与Django模型非常接近的表单。现在,当我们的项目准备就绪时,在geeks/models.py 中创建一个模型,
# 从内置库中导入标准 Django 模型 from django.db import models # 声明一个名为“GeeksModel”的新模型 class GeeksModel(models.Model): # 模型的字段 title = models.CharField(max_length = 200) description = models.TextField() last_modified = models.DateTimeField(auto_now_add = True) img = models.ImageField(upload_to = "images/") # 使用模型的标题名称重命名模型的实例 def __str__(self): return self.title
若要直接为此模型创建表单,请深入了解 geeks/表单.py并输入以下代码:
# 从 Django 导入表单类 from django import forms # 从 models.py 导入 GeeksModel from .models import GeeksModel # 创建 ModelForm class GeeksForm(forms.ModelForm): # specify the name of model to use class Meta: model = GeeksModel fields = "__all__"
现在访问 http://127.0.0.1:8000/,
基本表单数据类型和字段列表
表单中最重要的部分也是唯一必需的部分是它定义的字段列表。字段由类属性指定。以下是 Django 中使用的所有表单字段类型的列表
名字 | 类 | 输入 |
BooleanField | class BooleanField(**kwargs) | 复选框输入 |
CharField | class CharField(**kwargs) | 文本输入 |
ChoiceField | class ChoiceField(**kwargs) | Select |
TypedChoiceField | class TypedChoiceField(**kwargs) | Select |
DateField | class DateField(**kwargs) | 日期输入 |
DateTimeField | class DateTimeField(**kwargs) | DateTime输入 |
DecimalField | class DecimalField(**kwargs) | 当 Field.localize 为 False 时,数字输入,否则文本输入 |
DurationField | class DurationField(**kwargs) | 文本输入 |
EmailField | class EmailField(**kwargs | 电子邮件输入 |
FileField | class FileField(**kwargs) | 可清除文件输入 |
FilePathField | class FilePathField(**kwargs) | Select |
FloatField | class FloatField(**kwargs) | 当 Field.localize 为 False 时,数字输入,否则文本输入 |
ImageField | class ImageField(**kwargs) | 可清除文件输入 |
IntegerField | class IntegerField(**kwargs) | 当 Field.localize 为 False 时,数字输入,否则文本输入 |
GenericIPAddressField | class GenericIPAddressField(**kwargs) | 文本输入 |
MultipleChoiceField | class MultipleChoiceField(**kwargs) | 选择多个 |
TypedMultipleChoiceField | class TypedMultipleChoiceField(**kwargs) | 选择多个 |
NullBooleanField | class NullBooleanField(**kwargs) | 零布尔选择 |
RegexField | class RegexField(**kwargs) | 文本输入 |
SlugField | class SlugField(**kwargs) | 文本输入 |
TimeField | class TimeField(**kwargs) | 时间输入 |
----- | ||
URLField | class URLField(**kwargs) | URL输入 |
UUIDField | class UUIDField(**kwargs) | 文本输入 |
核心字段参数
核心字段参数是为每个字段提供的参数,用于应用某些约束或将特定特征赋予特定字段。例如,将所需参数 = False 添加到 CharField 将使用户能够将其留空。每个 Field 类构造函数至少采用这些参数。某些 Field 类采用其他特定于字段的参数,但应始终接受以下参数:
.math-table { 边框折叠: 折叠; 宽度: 100%; } .math-table td { 边框: 1px 实心#5fb962; 文本对齐: 左 !重要; } .math-table th { 边框: 1px 实心#5fb962; 填充: 8px; } .math-table tr>th{ 背景色: #c6ebd9; 垂直对齐: 中间; } .math-table tr:n-子(奇数) { 背景颜色: #ffffff; }
字段选项 | 描述 |
required | 默认情况下,每个 Field 类都假定该值是必需的,因此要使其不是必需的,您需要设置 required=False |
label | 标签参数允许您为此字段指定“人性化”标签。当字段显示在窗体中时,将使用此选项。 |
label_suffix | label_suffix参数允许您基于每个字段覆盖表单的label_suffix。 |
widget | 小部件参数允许您指定在呈现此字段时要使用的 Widget 类。 |
help_text | help_text参数允许您为此字段指定描述性文本。如果提供help_text,则当字段由一种方便的 Form 方法呈现时,该字段将显示在字段旁边。 |
error_messages | error_messages参数允许您覆盖字段将引发的默认消息。传入包含与要覆盖的错误消息匹配的键的字典。 |
validators | 验证程序参数允许您为此字段提供验证函数的列表。 |
localize | 本地化参数允许对表单数据输入以及呈现的输出进行本地化。 |
disabled. | 禁用的布尔参数设置为 True 时,将使用禁用的 HTML 属性禁用表单字段,以便用户无法对其进行编辑。 |