【Django初学者向け】モデルフィールド「TextField」とモデルフィールド名を指定する「verbose_name」について

Django

(最終更新月:2021年12月)

「モデルクラスでlabel表記の変更がしたい!」

「フォームクラスでwidgetをいじるのが面倒くさい!」

「textareaに対応しているモデルフィールドってどれ?」

などというDjango初学者の方へ向けての記事となります

当記事を通じて、

  • models.TextFieldについて
  • モデルフィールドの表記名を変更する「verbose_name」について

解説していきます

現状、フォームとして表示をすると、

となり、変更したい点は下記の通りです

  • 「input」フォームを「textarea」へ
  • ラベルの英語表記を日本語表記へ

これらの変更をモデルクラス内から行っていきます

順を追ってみていきましょう!

textareaに対応している「TextField」

文字列を保存するのによく使われる「models.CharField」はフォームで表示した場合、

<input type="text">

がデフォルトとなっています

最初からtextareaで表示すると決まっている場合は、

models.TextField

を使いましょう!

【コード例】

content = models.TextField()

max_length引数などの設定は不要になります

ラベル表記を変更する「verbose_name」

モデルフィールド名を指定する場合、

verbose_name

へ値を格納します

【コード例】

content = models.TextField(verbose_name="内容")

nippo > models.py

開発中の日報アプリでのコードを例に、全体は下記の通りとなりました

from django.db import models

class NippoModel(models.Model):
    title = models.CharField(max_length=100, verbose_name="タイトル")
    content = models.TextField(max_length=1000, verbose_name="内容")
    timestamp = models.DateTimeField(auto_now_add=True)

マイグレーションを行い、

Migrations for 'nippo':
  nippo/migrations/0002_auto_20211201_1306.py
    - Alter field content on nippomodel
    - Alter field title on nippomodel
  Applying nippo.0002_auto_20211201_1306... OK
  Applying nippo.0003_alter_nippomodel_content... OK

と出てくれば完了です!

まとめ

変更後、ブラウザからアクセスすると、

無事完成してました!

  • textareaがデフォルトのモデルフィールド「TextField」
  • モデルフィールド名を任意に変更できる「verbose_name」

についての解説でした!

次回は、クラスベースビュー「DeleteView」について解説していきます

当ブログでは、日報アプリ開発を通じて、Webアプリを一から開発し公開するまでを初学者の方でもわかるようにと記事を連載しています

「Djangoでのアプリ開発を学びたい!」
「Djangoで開発したアプリをWebで公開するにはどうするの?」

という方は必見です!

【Django】チュートリアル|日報アプリの開発から公開まで
Djangoのチュートリアルをお探しですか?具体的に「手を動かして作ってみたい!」という方へ向けて、誰でもできる簡易的な日報アプリの開発を通じて、Djangoの様々な機能に触れていくシリーズとなっています。PythonでWebアプリを作りたい方、必見の記事となります!
タイトルとURLをコピーしました