高度なadminによるデータ管理
フィードバック機能付き完全なPython/張庫Webサービス開発ガイド課の後で整理した文章を聞き終わった.章では、基本的なCRUDをサポートするWeb UIを提供します.これをadminと呼び、モデル登録で使用できます. CMS未満で、サービス初期に管理ツールとして使用するのに適しています. 管理ツールを作成する時間を短縮し、エンドユーザーサービスに専念できます.
上記で定義したAdminクラスにlist displayを指定しない場合、デフォルトでは list display:モデルリストに出力する列を指定します. list display links:list displayで指定した名前の詳細リンクgirlプロパティリスト にリンク search field:admin内検索UIを介してDBを通過するwhereクエリターゲットフィールドリスト list filter:指定フィールド値によるフィルタオプション を提供する.
また、message lengthなどの関数を定義し、フィールドとして使用することもできます.リストディスプレイに追加します.
adminにモデル化クラスを登録する
# app/admin.py
from django.contrib import admin
from .models import Post # 등록할 모델 클래스 임포트
@admin.register(Post) # 모델을 등록하는 wrapper함수
class PostAdmin(admin.ModelAdmin):
pass
モデルクラスでstrを実装する
上記で定義したAdminクラスにlist displayを指定しない場合、デフォルトでは
객체.__str__()
の戻り値が出力されます.したがって、__str__
が定義される.# app/models.py
from django.db import models
class Post(models.Model):
message = models.TextField()
is_publish = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.message
adminの各種属性を定義する
また、message lengthなどの関数を定義し、フィールドとして使用することもできます.リストディスプレイに追加します.
message_length.short_description
コードを記述して、画面表示の出力を変更することもできます.# app/admin.py
from django.contrib import admin
from .models import Post
@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
list_display = ['pk', 'message', 'message_length', 'is_publish', 'created_at', 'updated_at']
list_display_links = ['message']
search_fields = ['message']
list_filter = ['is_publish']
def message_length(self, post):
return len(post.message)
message_length.short_description = "메시지 길이"
Reference
この問題について(高度なadminによるデータ管理), 我々は、より多くの情報をここで見つけました https://velog.io/@joje/장고-admin을-통한-데이터-관리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol