-
django-jsonform을 사용한 django admin 활용Django 2024. 7. 21. 18:54
목차
서론
본문은 django-jsonform을 사용하여, 어드민 페이지에 쉽고(그나마), 간단히 사용한 예시를 작성하였습니다.
본론
라이브러리 설치 및 settings에 추가
pip install django-jsonform == 2.22.0
INSTALLED_APPS = [ ... "django_jsonform", ]
JSONField 사용하여 model 추가
json 타입을 지정하여, 원하는 dict 형태로 생성이 가능합니다.
from django.db import models from django_jsonform.models.fields import JSONField class AbstractModel(models.Model): QUERIES_SCHEMA = { "type": "list", "items": { "type": "dict", "keys": { "type": {"type": "string", "choices": ["choice1", "choice2"]}, "name": {"type": "string"}, }, }, } queries = JSONField(schema=QUERIES_SCHEMA) createdAt = models.DateTimeField(null=True, auto_now_add=True) class Meta: abstract = True
Admin 페이지 사용 예시
choice 타입으로, choice 내용을 정할 수 있고,
String 타입으로 일반 텍스트를 입력할 수 있습니다.
Admin 페이지 visualizing
간단하게 Admin을 수정하여, 조금 더 보기 쉽게 비주얼라이징도 가능합니다.
from django.contrib import admin from django.utils.safestring import mark_safe class AbstractModelAdmin(admin.ModelAdmin): list_display = ["queries_visualizing", "createdAt"] # list_display = ["queries", "createdAt"] def queries_visualizing(self, obj): return mark_safe("<br/>".join([f"{query["type"]} / {query["name"]}" for query in obj.queries]))
Reference
https://django-jsonform.readthedocs.io/en/latest/
예시코드
https://github.com/NGG-kang/tistory/tree/main/djang-jsonform
'Django' 카테고리의 다른 글
drf_spectacular를 사용한 api docs 만들기 (0) 2022.11.20 Django서버에 간단한 HTTPS Let's Encrypt 적용하기 (0) 2022.07.30 django.core.exceptions.SuspiciousFileOperation: Detected path traversal attempt (0) 2021.08.02 Django queryset distinct and sort (0) 2021.08.02 Django to AWS S3 업로드간 발생하는 I/O operation on closed file 해결방법 (0) 2021.06.21