Django Admin
管理サイトでデータを管理します
「Django Admin」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全4レッスンが含まれています。
組み込みの管理サイト
Djangoには強力な管理サイトが標準で付属しています。これはデータを管理するための自動生成Webインターフェースです。Djangoで特に人気の高い機能の1つです。
# The admin gives you CRUD screens
# for your models with zero UI code
print('Django admin manages data out of the box')管理サイトはすでに導入済み
管理サイトはdjango.contrib.adminに含まれています。これはデフォルトでINSTALLED_APPSに登録され、プロジェクトのurls.pyにも組み込まれています。
# mysite/urls.py
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
print('admin/ is mapped to the admin site')スーパーユーザーの作成
ログインするには管理者アカウントが必要です。python manage.py createsuperuserで作成し、表示される指示に従ってください。
# python manage.py createsuperuser
# Username: admin
# Email: admin@example.com
# Password: ********
print('createsuperuser makes an admin login')ログイン
サーバーを起動して/admin/にアクセスします。スーパーユーザーの認証情報でログインすると、ダッシュボードが表示されます。
# python manage.py runserver
# Open http://127.0.0.1:8000/admin/
print('Visit /admin/ and log in')モデルの登録
モデルは登録しないと管理サイトに表示されません。アプリのadmin.pyでadmin.site.register()を使って登録します。
# blog/admin.py
from django.contrib import admin
from .models import Post
admin.site.register(Post)
print('Post now appears in the admin')データの管理
登録すると、すべての行の一覧表示、新しい行の追加、編集、削除を行うCRUD画面を利用できます。フォームを自分で書く必要はありません。
# In the admin you can:
# - view a list of all Posts
# - add a new Post
# - edit or delete existing ones
print('Full CRUD with no extra code')ModelAdminによるカスタマイズ
ModelAdminクラスを使うと、モデルの表示方法をカスタマイズできます。リスト画面に表示するカラムは、list_displayで選択します。
from django.contrib import admin
from .models import Post
class PostAdmin(admin.ModelAdmin):
list_display = ('title', 'created', 'published')
admin.site.register(Post, PostAdmin)
print('list_display picks the columns')検索とフィルター
search_fieldsで検索ボックスを、list_filterでサイドバーのフィルターを追加すると、大規模なデータセットを効率よく操作できます。
from django.contrib import admin
from .models import Post
class PostAdmin(admin.ModelAdmin):
search_fields = ('title',)
list_filter = ('published',)
admin.site.register(Post, PostAdmin)
print('Search box and sidebar filters added')registerデコレーター
@admin.register()デコレーターを使うと、admin.site.register()を別途呼び出すよりも簡潔に登録できます。
from django.contrib import admin
from .models import Post
@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
list_display = ('title',)
print('@admin.register is the decorator form')__str__の重要性
モデルに__str__を定義すると、管理サイトで「Post object (1)」のような表示ではなく、読みやすいラベルが表示されます。
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
def __str__(self):
return self.title
print('__str__ gives a readable admin label')権限
管理サイトではユーザー権限が適用されます。権限を制限したスタッフユーザーを作成できるため、全員にスーパーユーザーのアクセス権を与える必要はありません。
# Staff users (is_staff=True) can access the admin
# Permissions control which models they can edit
print('Permissions limit admin access')理解度チェック
管理サイトについての理解度を確認しましょう。
まとめ
Djangoの管理サイトを使ってデータを管理する方法を学びました。
- 管理サイトは標準で組み込まれており、
/admin/に対応しています createsuperuserでアカウントを作成しますadmin.pyでモデルを登録するとCRUD画面を利用できますModelAdminでカラム、検索、フィルターをカスタマイズできます__str__で読みやすいラベルを定義し、権限でアクセスを制限します
よくある質問
「Django Admin」レッスンは無料ですか?
はい。「Django Admin」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全4レッスンが含まれています。
「Django Admin」で何を学びますか?
管理サイトでデータを管理します ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Python Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「Django Admin」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPython Academyレッスンでコードを書いて実行できますか?
はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- プロジェクトとアプリ
- モデルとマイグレーション
- ビューとURL
- Django Admin