• 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のas_p, as_ul, as_tableで自動的にフォーマットして表示する

DjangoのFormのas_p, as_ul, as_tableで自動的にフォーマットして表示する

1 as_p,as_ul,as_tableでのformの表示
2 関連記事

今回は、as_p,as_ul,as_tableを用いて、DjangoのFormをよりきれいに表示する表示方法を記載する

as_p, as_ul, as_tableを利用すると、自動的にformの各フィールドが、pタグ、liタグ、tr,th,tdタグに囲われて表示されるようになる


as_p,as_ul,as_tableでのformの表示

まず、今回は、サンプルとしてforms.pyは以下のように定義した。
  • forms.py

from django import forms

class FormName(forms.Form):
    name = forms.CharField()
    email = forms.EmailField()
    age = forms.IntegerField()
    sex = forms.ChoiceField(choices=[
        ('item1', 'man'), ('item2', 'woman')
    ])
    check = forms.BooleanField()

次にviews.pyでフォームをtemplateに値を渡す。

  • views.py

from django.shortcuts import render
from . import forms

def index(request):
    return render(request, 'basicapp/index.html')

def form_name_view(request): # formをテンプレートに渡す
    form = forms.FormName()

    if request.method == 'POST':
        form = forms.FormName(request.POST)

    return render(request, 'basicapp/form_page.html', {'form': form})
    # formをtempateに渡す

最後にtemplateで、as_p,as_ul,as_tableでformがどのように表示されるか見ていく

  • form_page.html(as_p)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> <title>Forms</title>
</head>
<body>
    <h1>Fill out the form!</h1>
    <div class="container">
        <form method="post">
            {{ form.as_p }}
            {% csrf_token %}
            <input type="submit" class="btn btn-primary" value="Submit">
        </form>
    </div>
</body>
</html>
  • 画面には以下のように表示される(as_p)

  • form_page.html(as_ul)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> <title>Forms</title>
</head>
<body>
    <h1>Fill out the form!</h1>
    <div class="container">
        <form method="post">
            <ul><!-- ulでli要素を囲う(olでもOK) -->
            {{ form.as_ul }}
            {% csrf_token %}
            </ul>
            <input type="submit" class="btn btn-primary" value="Submit">
        </form>
    </div>
</body>
</html>
  • 画面には以下のように表示される(as_ul)

  • form_page.html(as_table)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> <title>Forms</title>
</head>
<body>
    <h1>Fill out the form!</h1>
    <div class="container">
        <form method="post">
            <table>
            {{ form.as_table }}
            </table>
            {% csrf_token %}
            <input type="submit" class="btn btn-primary" value="Submit">
        </form>
    </div>
</body>
</html>
  • 画面には以下のように表示される(as_table)

以上、djangoのformのas_p,as_ul,as_tableについて詳細に記載しました。

関連記事

Pythonの型ヒント:コレクション型とOptional型の使い方
Pythonの型ヒント:コレクション型とOptional型の…
Python型ヒントについて、変数と関数の引数と戻り値に付与する基本的な書き方について
Python型ヒントについて、変数と関数の引数と戻り値に付与…
【まとめ】よく使うLinuxのショートカット11選
【まとめ】よく使うLinuxのショートカット11選
覚えておくべきLinuxコマンド50選
覚えておくべきLinuxコマンド50選
FlaskでFormを用いてPOSTリクエストを行い、送信された値を取得する
FlaskでFormを用いてPOSTリクエストを行い、送信さ…
Flaskでabortを用いてHTTPException例外を強制的に発生させる
Flaskでabortを用いてHTTPException例外…

Primary Sidebar

人気記事

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

特集記事

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

目次

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

Footer

利用規約