Django Widgets(部件)

本文深入探讨Django中的Widgets,作为视图与HTML表单交互的关键组件,了解它们的工作原理及如何自定义。
摘要由CSDN通过智能技术生成

Widgets(部件)

一个 widget 对应一个 HTML form 输入元素,有两个功能,一是用于 HTML 渲染,二是 从 GET/POST 字典抽出数据。
Field类表现* 校验逻辑* ,而部件表现* 显示逻辑* 。


一. 如何为form类指定部件
若不为form的属性指定部件时,使用默认的, Built-in Field classes 。然而,若想指定不同的部件时,只需要让 widget 作为参数即可
from django import forms

class CommentForm(forms.Form):
    name = forms.CharField()
    url = forms.URLField()
    comment = forms.CharField(widget=forms.Textarea)
这里的 comment 会变成 Textarea,而不是 CharField


二. 如何给部件指定参数
widgets 具有可选的参数,可以在给 form field 定义 widget 时设置。如下所示, years 属性被指定为 SelectDateWidget 的参数。
from django import forms
from django.forms.extras.widgets import SelectDateWidget

BIRTH_YEAR_CHOICES = ('1980', '1981', '1982')
FAVORITE_COLORS_CHOICES = (('blue', 'Blue'),
                            ('green', 'Green'),
                            ('black', 'Black'))

class SimpleForm(forms.Form):
    birth_year = forms.DateField(<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值