【Django】관리 화면의 커스터마이즈
소개
최근 업무에서 장고를 만질 기회가 있었기 때문에,
그 때 조사한 내용을 수시로 갱신해 나가려고 생각합니다.
완전히 자신 용 기사이므로 많이 요구하지 마십시오.
· 전제
관리 화면에 로그인할 수 있는 상태
models.py에 작성하고 migrate가 완료되었습니다.
models.py의 내용
이번 models.py
의 내용은 아래와 같습니다.
models.pyfrom django.db import models
class User(models.Model):
name = models.CharField("名前", max_length=32)
mail = models.EmailField()
def __str__(self):
return self.name
class Entry(models.Model):
STATUS_DRAFT = "draft"
STATUS_PUBLIC = "public"
STATUS_SET = (
(STATUS_DRAFT, "下書き"),
(STATUS_PUBLIC, "公開"),
)
title = models.CharField("タイトル", max_length=128)
body = models.TextField("本文")
created_at = models.DateTimeField("作成日", auto_now_add=True)
updated_at = models.DateTimeField("更新日", auto_now=True)
status = models.CharField("公開ステータス", choices=STATUS_SET, default=STATUS_DRAFT, max_length=8)
author = models.ForeignKey(User, related_name="entries", verbose_name="ユーザ", on_delete=models.CASCADE)
def __str__(self):
return self.title
그럼, 이 상태에서 어떠한 기술을 해 나가면
관리 화면이 커스터마이즈 되는지를 써 갑니다.
관리 화면 사용자 정의
python3 manage.py startapp <アプリ名>
에서 정의한 앱 아래에 존재하는,admin.py
로 기본적으로 설정을 합니다.
페이지내 링크를 붙였으므로, 원하는 것을 선택해 주세요.
이번
models.py
의 내용은 아래와 같습니다.models.py
from django.db import models
class User(models.Model):
name = models.CharField("名前", max_length=32)
mail = models.EmailField()
def __str__(self):
return self.name
class Entry(models.Model):
STATUS_DRAFT = "draft"
STATUS_PUBLIC = "public"
STATUS_SET = (
(STATUS_DRAFT, "下書き"),
(STATUS_PUBLIC, "公開"),
)
title = models.CharField("タイトル", max_length=128)
body = models.TextField("本文")
created_at = models.DateTimeField("作成日", auto_now_add=True)
updated_at = models.DateTimeField("更新日", auto_now=True)
status = models.CharField("公開ステータス", choices=STATUS_SET, default=STATUS_DRAFT, max_length=8)
author = models.ForeignKey(User, related_name="entries", verbose_name="ユーザ", on_delete=models.CASCADE)
def __str__(self):
return self.title
그럼, 이 상태에서 어떠한 기술을 해 나가면
관리 화면이 커스터마이즈 되는지를 써 갑니다.
관리 화면 사용자 정의
python3 manage.py startapp <アプリ名>
에서 정의한 앱 아래에 존재하는,admin.py
로 기본적으로 설정을 합니다.
페이지내 링크를 붙였으므로, 원하는 것을 선택해 주세요.
관리 화면에 표시
초기 상태에서는 관리 화면에 작성한 Model이 표시되지 않으므로,
그것을 표시하려면 다음을 작성해야합니다.
admin.py
from django.contrib import admin
from .models import User, Entry
@admin.register(User)
class UserAdmin(admin.ModelAdmin):
pass
@admin.register(Entry)
class EntryAdmin(admin.ModelAdmin):
pass
@admin.register( )
의 ( )内
는 모델명을 기술해 주세요.또한 작성하려면 모델을 가져와야 합니다.
목록으로 돌아가기
편집 화면에 표시할 항목을 사용자 정의
편집 화면으로 전환하면 기본적으로 편집 가능한 모든 필드가 표시됩니다.
이 중에서 제목과 본문만 표시하고 싶은 경우는 아래와 같이 기술합니다.
admin.py
from django.contrib import admin
from .models import User, Entry
@admin.register(User)
class UserAdmin(admin.ModelAdmin):
model = User
fields = ["name", "mail"]
@admin.register(Entry)
class EntryAdmin(admin.ModelAdmin):
model = Entry
fields = ["title", "body"]
fields의 내용을 편집하면 표시 항목이 변경됩니다.
그러면 이미지처럼 보입니다. 표시 내용이 감소했습니다.
목록으로 돌아가기
선택 화면에 여러 항목 표시
항목에서 항목을 선택하는 화면에서 기본적으로 제목만 표시됩니다.
이 화면에서 제목뿐만 아니라,
본문이나 작성자를 표시하고 싶습니다! 라고 하는 경우는 아래와 같이 기술합니다.
admin.py
from django.contrib import admin
from .models import User, Entry
@admin.register(User)
class UserAdmin(admin.ModelAdmin):
model = User
list_display = ["name", "mail"]
@admin.register(Entry)
class EntryAdmin(admin.ModelAdmin):
model = Entry
list_display = ["title", "body", "status", "author"]
list_display를 편집하면 표시 항목이 변경됩니다.
설명 후 이미지처럼 보입니다.
목록으로 돌아가기
사이고에게
이상이 됩니다.
아직 조금 만졌을 뿐이므로 항목이 적지만,
새로운 지식이 늘어나면 이쪽의 기사를 갱신해 가므로 꼭 봐 주세요.
Reference
이 문제에 관하여(【Django】관리 화면의 커스터마이즈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/onishi_820/items/fadcfc9e9dd28f54c32c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【Django】관리 화면의 커스터마이즈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/onishi_820/items/fadcfc9e9dd28f54c32c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)