• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
  • Skip to footer

AI活用エンジニアへの道

生成AI時代のエンジニアの生き方を考えるメディア(作成途中)

  • コラム
  • 生成AI
  • プログラミング
    • Python入門
    • Flask入門
    • Django入門
  • プロフィール
Home / プログラミング / Django / DjangoのFormに初期値を設定する方法

DjangoのFormに初期値を設定する方法

1 Formに初期値を設定する方法
2 関連記事

DjangoのFormで初期値(画面表示時に初めから設定されている値)を設定する方法については様々な方法があるが、以下にそれぞれ記載する。

Formに初期値を設定する方法


views.pyで設定する方法

views.pyで設定するのは、画面で表示するformインスタンス初期化時に設定する方法である。
まず、forms.pyは以下のように設定する。

  • forms.py(フォーム)の設定
class TestForm(forms.Form):
    year = forms.DateField()
    some_text = forms.CharField(label='Text')
    choices = forms.CharField(label='Text')
    boolean = forms.BooleanField()
    integer = forms.IntegerField()
    email = forms.EmailField(min_length=10)

そして、views.pyには以下のように設定して初期化する

  • views.py(ビュー)で初期化する

def home(request):
    initial_dict = {
        'some_text': 'Text',
        'boolean': True,
    }
    form = TestForm(request.POST or None, initial=initial_dict)
    # 初期化時に第2引数に初期値を設定する。some_text=Text, boolean=Trueが初期値で設定される

    return render(request, 'form.html', {'form': form})

フォームを画面に表示する(form.as_p)と、以下のように表示される


フォームクラスのフィールド上で設定する方法

フォームクラスの各フィールドにinitial=''として、値を設定する方法である。

  • forms.py(フォーム)の設定
class TestForm(forms.Form):
    year = forms.DateField()
    some_text = forms.CharField(initial='Text', label='Text')
    choices = forms.CharField(label='Text')
    boolean = forms.BooleanField(initial=True)
    integer = forms.IntegerField()
    email = forms.EmailField(min_length=10)

すると画面上には以下のように表示される


フォームクラスのコンストラクタで設定する方法

これは、フォームクラスの__init__上に設定する方法で、以下のように記載する

  • forms.py(フォーム)の設定
class TestForm(forms.Form):
    year = forms.DateField()
    some_text = forms.CharField(label='Text')
    choices = forms.CharField(label='Text')
    boolean = forms.BooleanField()
    integer = forms.IntegerField()
    email = forms.EmailField(min_length=10)

    # __init__上でフィールドを初期化
    def __init__(self, *args, **kwargs):
        super(TestForm, self).__init__(*args, **kwargs)
        self.fields['some_text'].initial = 'Text'
        self.fields['boolean'].initial = True

画面上には以下のように表示される

関連記事

現役エンジニアがDjangoに関する本を5つ紹介
現役エンジニアがDjangoに関する本を5つ紹介
WindowsでDjango、Anaconda、VSCodeのインストールとDjangoを開発する環境の構築をする
WindowsでDjango、Anaconda、VSCode…
MacでDjango、Anaconda、VSCodeのインストールとDjangoを開発する環境の構築をする
MacでDjango、Anaconda、VSCodeのインス…
DjangoでModelのsave前後で処理を行うSignalのpre_save, post_saveの使い方
DjangoでModelのsave前後で処理を行うSigna…
DjangoのModelにSlugFieldを利用する。その利用方法と
DjangoのModelにSlugFieldを利用する。その…
Djangoのモデルの各フィールドについて解説(AutoField, BigAutoField, BooleanField, CharField, TextField, DateField, EmailField, IntegerField)
Djangoのモデルの各フィールドについて解説(AutoFi…

Primary Sidebar

人気記事

  • 1
    ITエンジニアとしてスキルを高めるためのUdemy講…
  • 2
    PyCharm,IntelliJのおすすめプラグイン一覧
  • no image 3
    Python未経験だが、フリーランスの案件に採用さ…
  • 4
    アメリカのシリコンバレーでプログラミングを無…

特集記事

  • 1
    Cursorの使用のポイントとコツ(コード補完、イ…
  • 2
    ITエンジニアとしてスキルを高めるためのUdemy講…

目次

1 Formに初期値を設定する方法
2 関連記事
StartCode ロゴ
AI時代のエンジニアを最速で育てる
法人向けIT研修で即戦力を育成しています。詳しくはお問い合わせください。
▶ 詳細はこちら
Django講座
【Udemy】Django入門講座(0からDjangoを学習: Python講座つき)
受講生6500人ほどの人気講座。<strong>View, Template, Model, Cla...
詳細 ▶

Footer

利用規約