【Django】はじめてのDjangoアプリ第5回

django

PythonのWEBフレームワークDjangoを利用したアプリケーションの公式テュートリアルに沿ったWEBアプリケーション作成のメモ第5回です。

Writing your first Django app, part 2 | Django documentation
The web framework for perfectionists with deadlines.

前回は、インタラクティブPythonシェルでDB操作を行いました。

今回は、Django Adminの導入を行います。

哲学

スタッフやクライアントがコンテンツを追加、変更、削除できるように管理サイトを作成するのは、創造性をあまり必要としない退屈な作業です。そのため、Django はモデルの管理インターフェイスの作成を完全に自動化します。

Django は、「コンテンツ発行者」と「公開」サイトが明確に分離されたニュース編集室環境で作成されました。サイト管理者はこのシステムを使用してニュース記事、イベント、スポーツのスコアなどを追加し、そのコンテンツが公開サイトに表示されます。 Django は、サイト管理者がコンテンツを編集するための統一インターフェイスを作成するという問題を解決します。

adminは、サイト訪問者が使用することを目的としていません。サイト管理者向けです。

管理ユーザー作成

まず、管理サイトにログインできるユーザーを作成する必要があります。次のコマンドを実行します。

python manage.py createsuperuser

ユーザー名を入力します。

メールアドレスを入力します。

パスワードを入力します。

ビルトインサーバー起動

Django 管理サイトはデフォルトでアクティブ化されます。開発サーバーを起動して調べてみましょう。

サーバーが実行されていない場合は、次のように起動します。

python manage.py runserver

管理画面ログイン

次に、Web ブラウザを開いて、ローカル ドメインの「/admin/」に移動します (例: http://127.0.0.1:8000/admin/)。管理者のログイン画面が表示されるはずです。

次に、前の手順で作成したスーパーユーザー アカウントを使用してログインしてみます。 Django Adminインデックス ページが表示されるはずです。

いくつかのタイプの編集可能なコンテンツ (グループとユーザー) が表示されるはずです。これらは、Django に同梱されている認証フレームワークである django.contrib.auth によって提供されます。

投票アプリを管理画面で編集可能にする

しかし、投票アプリはどこにあるのでしょうか?管理インデックスページには表示されません。

あとやるべきことは 1 つだけです。Question オブジェクトには管理インターフェイスがあることをadminに伝える必要があります。これを行うには、polls/admin.py ファイルを開き、次のように編集します。

▼「polls/admin.py」を編集

from django.contrib import admin
from .models import Question

admin.site.register(Question)

質問を登録したので、Django はそれが管理インデックス ページに表示されるべきであることを認識します。

「Questions」をクリックします。 「変更リスト」ページに質問が表示されます。このページにはデータベース内のすべての質問が表示され、質問を 1 つ選択して変更できます。 先ほど作成した質問「What’s up?」というものがあります。

質問を編集するために「What’s up?」をクリックします。

ここで注意すべき点:

🟢フォームはQuestionモデルから自動生成されます。
🟢さまざまなモデル フィールド タイプ (DateTimeFieldCharField) が、適切な HTML 入力ウィジェットに対応します。各タイプのフィールドは、Django 管理画面でそれ自体を表示する方法を知っています。
🟢各 DateTimeField は無料の JavaScript ショートカットを取得します。日付には「Today」のショートカットとカレンダーのポップアップが表示され、時間には「Now」のショートカットと、よく入力される時間をリストする便利なポップアップが表示されます。

ページの下部には、いくつかのオプションがあります。

🟢保存 – 変更を保存し、このタイプのオブジェクトの変更リスト ページに戻ります。
🟢保存して編集を続行 – 変更を保存し、このオブジェクトの管理ページを再読み込みします。
🟢保存して別のフォームを追加 – 変更を保存し、このタイプのオブジェクトの新しい空のフォームを読み込みます。
🟢削除 – 削除確認ページを表示します。
「公開日」の値がチュートリアル 1 で質問を作成した時刻と一致しない場合は、TIME_ZONE 設定に正しい値を設定するのを忘れたことを意味している可能性があります。変更してページをリロードし、正しい値が表示されることを確認します。

「Today」と「Now」のショートカットをクリックして「Date published」を変更します。次に「Save and continue editing.」をクリックします。次に右上の「History」をクリックします。 Django 管理者を通じてこのオブジェクトに加えられたすべての変更をリストするページが、変更を行った人のタイムスタンプとユーザー名とともに表示されます。

モデル API に慣れ、管理サイトに慣れてきたら、このチュートリアルのパート 3 を読んで、投票アプリにビューを追加する方法を学習してください。

今回は以上です。次回はビューの追加を予定しています。

  • 0
  • 0
  • 0
  • 0

コメント

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