自分だけのクイズを作成しよう - Quipha
スポンサーリンク

【Django4】CRUDアプリをBootstrapでデザイン調整

Django

当サイトではアフィリエイト広告を利用しています。

新規登録画面の修正

新規登録画面を修正します。
formについては、django-widget-tweaksを使用してクラスを指定し調整します。

crud/templates/crud/product_form.html
{% extends 'crud/base.html' %}

{% load widget_tweaks %}

{% block content %}

<h1>新規登録</h1>

<form method="post">
    {% csrf_token %}

    <div class="mb-3">
        {{ form.name|add_label_class:"form-label" }}
        {{ form.name|add_class:"form-control" }}

        {{ form.price|add_label_class:"form-label" }}
        {{ form.price|add_class:"form-control" }}
    </div>

    <a class="btn btn-secondary" href="{% url 'crud:list' %}">戻る</a>
    <input class="btn btn-primary" type="submit" value="登録">
</form>

{% endblock %}

一度、以下のURLにアクセスし確認しましょう。

http://localhost:8000/crud/new/

新規登録画面が表示されました。

商品名と価格についてはそれぞれ、「Name」と「Price」と表示されていますので変更します。
モデルを以下のように修正します。(verbose_nameを指定)

crud/models.py
from django.db import models
from django.urls import reverse

# Create your models here.


class Product(models.Model):

    name = models.CharField(max_length=200, verbose_name="商品名")
    price = models.IntegerField(verbose_name="価格")

    def __str__(self):
        return self.name

    # 新規登録・編集完了後のリダイレクト先
    def get_absolute_url(self):
        return reverse('crud:list')

再度画面を表示してみると、今度は日本語で表示されました。

編集画面の修正

編集画面を修正します。新規登録画面と同じような要領です。

crud/templates/crud/product_update_form.html
{% extends 'crud/base.html' %}

{% load widget_tweaks %}

{% block content %}

<h1>編集</h1>

<form method="post">
    {% csrf_token %}

    <div class="mb-3">
        {{ form.name|add_label_class:"form-label" }}
        {{ form.name|add_class:"form-control" }}

        {{ form.price|add_label_class:"form-label" }}
        {{ form.price|add_class:"form-control" }}
    </div>

    <a class="btn btn-secondary" href="{% url 'crud:list' %}">戻る</a>
    <input class="btn btn-primary" type="submit" value="編集">
</form>

{% endblock %}

一覧画面の編集ボタンをクリックして確認します。
編集画面が表示されました。

スポンサーリンク

削除画面の修正

削除画面を修正します。

crud/templates/crud/product_confirm_delete.html
{% extends 'crud/base.html' %}

{% block content %}

<h1>削除</h1>

<form method="post">
    {% csrf_token %}

    <div class="alert alert-danger" role="alert">
        以下の商品を削除してもよろしいですか?
    </div>

    <div class="alert alert-light" role="alert">
        {{ object }}
    </div>

    {{ form }}
    <a class="btn btn-secondary" href="{% url 'crud:list' %}">戻る</a>
    <input class="btn btn-danger" type="submit" value="削除">
</form>

{% endblock %}

一覧画面の削除ボタンをクリックして確認します。
削除画面が表示されました。

完成ソース

今回作成したプロジェクトのソース全容は、以下のリポジトリをご覧ください。

GitHub - chigusa-web/djangoCrudApp: 【Django4】CRUDアプリを作ろう!
【Django4】CRUDアプリを作ろう!. Contribute to chigusa-web/djangoCrudApp development by creating an account on GitHub.

その他

外部サーバーへ公開

作成したアプリは公開して使ってもらいましょう!
Djangoアプリケーションを外部公開する方法をまとめました。

脆弱性対策

脆弱性を抱えたアプリケーションの場合、攻撃を受ける可能性があり大変危険です。
作成したアプリケーションは、脆弱性対策も意識しましょう。

GitHubと連携

GitHubと連携する方法を解説しました。
プロジェクトの管理はGitHubを活用しましょう。

GitHub Copilot

GitHub Copilotを導入し、AIにコーディングをサポートしてもらうこともできます。

さいごに

今回はBootstrapを利用して、デザインを調整しました。
レスポンシブデザインにも対応でき、便利です。

ぜひ活用しましょう。

他にも私のブログで、Djangoについて解説している記事がありますのでご覧ください。

\オススメ/

コメント

タイトルとURLをコピーしました