Menu
CoddyTech

内置验证

本课属于 Coddy Django 学习旅程的“表单”单元。第 9 课,共 20 课。

活动需要填写说明和名额数量。每个表单字段都会检查相应类型的值,其参数还可以添加规则。你已经见过两条规则:每个字段都是必填的,而 max_length=100 会拒绝过长的标题。

  • IntegerField 上的 min_value:拒绝较小的数字。
  • 任意字段上的 required=False:可以留空。

控件决定字段的呈现方式:widget=forms.Textarea 会显示一个较大的文本框。下面是一个桌游预订表单:

class TableForm(forms.Form):
    players = forms.IntegerField(min_value=2)
    wishes = forms.CharField(widget=forms.Textarea, max_length=500)
    phone = forms.CharField(required=False)

可选文本字段留空时,cleaned_data 中的值是 "";可选数字字段留空时,值是 None。模板中的循环无需修改,就能显示新增字段。

challenge icon

挑战

简单

活动现在有了描述和可容纳人数。

  1. 在 events/forms.py 中,将 description 添加到 EventForm:使用大文本框输入,可以留空。添加 capacity:一个至少为 1 的整数。
  2. 在 new_event 中,将这两项都保存到活动中。

添加一个可容纳 25 人且没有描述的活动:活动页面会显示可容纳 25 人。

亲手试试

from django import forms


class EventForm(forms.Form):
    title = forms.CharField(max_length=100)
    date = forms.DateField()
    place = forms.CharField(max_length=100)
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

表单中的所有课

自己练习: Django 在线编辑器