Menu
CoddyTech

組み込みのバリデーション

CoddyのDjangoジャーニー「フォーム」セクションの一部。レッスン 9/20。

イベントには説明と定員が必要です。各フォームフィールドはそれぞれの種類の値をチェックし、引数でルールを追加します。これまでに2つ学びました。すべてのフィールドは必須であり、max_length=100は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で、EventFormにdescriptionを追加します。大きな入力欄に入力するテキストで、空欄のままでもかまいません。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プレイグラウンド