Django 관리자 사용자 정의 페이지
4302 단어 django
장고는 훌륭합니다. 그리고 Django Admin은 훨씬 더 큽니다. 몇 줄의 코드로 제공되는 기능의 양은 놀라울 정도입니다.
그러나 관리자 인터페이스에서 얻을 수 있는 기능의 양이 "무료"인 경우에도 때로는 충분하지 않을 수 있습니다. 특히 중간에서 높은 수준의 복잡성을 가진 사이트를 구축하는 경우 몇 가지 사용자 지정 관리 페이지가 필요할 것입니다.
항상 그렇듯이 Django의 문서는 매우 훌륭합니다. 항상 먼저 확인하는 것이 좋습니다. 그러나 약간 장황하고 사용자 지정 관리 페이지를 구축하기 위한 부분이 문서 전체에 흩어져 있습니다.
사이트에 맞춤 관리 페이지를 추가하는 방법에 대한 요약/치트 시트입니다.
나만의 관리 사이트 만들기
원하는 대로 사용자 지정할 수 있는 사용자 지정 관리 사이트를 만들 것입니다.
class CustomAdminSite(AdminSite): # 1.
site_header = "Custom Admin Site header"
site_title = "Custom Admin Site title"
def get_urls(self): # 2.
urls = super().get_urls()
my_urls = [
path('custom_admin_view/',
self.admin_view(( # 3.
CustomAdminView.as_view(admin_site=self))), name='cav'),
]
return my_urls + urls # 4.
admin_site = CustomAdminSite(name='myadmin') # 5.
admin_site.register(MyModel)
admin.py
AdminSite
( documentation ) get_urls()
메서드를 재정의합니다: 일반 페이지와 자신의 페이지( documentation ) self.admin_view()
로 "래핑"하는 것을 잊지 마십시오. 이는 다른 관리 페이지에서 요구하는 것과 마찬가지로 모든 사용자 지정 페이지에 대한 인증 요구 사항을 제공합니다. 그렇지 않으면 보호 없이 액세스할 수 있습니다! ( documentation ) 기본 관리 사이트 재정의
여러 관리 사이트를 보유할 계획이 없다면 기본 관리 사이트를 사용자 정의 사이트로 바꾸는 것이 좋습니다( documentation ).
from django.contrib.admin.apps import AdminConfig
class CustomAdminConfig(AdminConfig): # 1.
default_site = 'myproject.admin.CustomAdminSite' # 2.
apps.py
INSTALLED_APPS = [
...
'myproject.apps.CustomAdminConfig', # 3.
...
]
settings.py
admin_site.register(EquipmentCategory, EquipmentCategoryAdmin)
admin_site.register(EquipmentLocation, EquipmentLocationAdmin)
AdminConfig
django.contrib.admin
목록에서 기본INSTALLED_APPS
앱을 교체합니다.나만의 맞춤 관리 보기 만들기
마지막으로 사용자 지정 관리 보기를 만들 수 있습니다. 일부 추가 컨텍스트 항목이 있는 일반 보기입니다( documentation ).
class CustomAdminView(View):
admin_site = None # 1.
def get(self, request):
return render(request, 'custom_admin_view.html', dict(
self.admin_site.each_context(request), # 1.
))
site_name
, site_title
등과 같은 공통 필드를 갖기 위해 사용자 정의 관리 사이트에 필요한 공통 컨텍스트 항목입니다(이러한 사용자 정의 필드에 대한 첫 번째 섹션 참조). 바라건대, 이제 혼란 없이 쉽게 자신만의 사용자 지정 관리 페이지를 추가할 수 있습니다.
즐거운 코딩하세요!
Reference
이 문제에 관하여(Django 관리자 사용자 정의 페이지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rockandnull/django-admin-custom-pages-1aef텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)