0Pricing
Python Academy · レッスン

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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. プロジェクトとアプリ
  2. モデルとマイグレーション
  3. ビューとURL
  4. Django Admin
← Python Academyに戻る