Django 관리 템플릿을 교체하지 않고 확장하고 재정의하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-13 00:00:02
원래의
738명이 탐색했습니다.

How to Extend and Override Django Admin Templates Without Replacing Them?

템플릿 로더 재정의를 사용하여 Django 관리 템플릿 확장 및 재정의

Django 관리 템플릿을 교체하지 않고 확장하고 재정의하는 문제는 일반적이었습니다. 개발자들 사이에서 우려가 커지고 있습니다. 이 주제에 대한 이전 논의에도 불구하고 app_directories 템플릿 로더를 사용하는 프로젝트에서는 문제가 여전히 널리 퍼져 있습니다.

한 가지 해결 방법은 관리 템플릿을 복제하고 복사본에서 확장하는 것이지만 이로 인해 복잡성과 유지 관리 오버헤드가 추가됩니다. 이 프로세스를 단순화하기 위해 개발자가 특정 앱 내에서 템플릿을 확장할 수 있는 사용자 정의 템플릿 로더가 개발되었습니다.

재정의 템플릿 로더 구현

admin 템플릿(예: admin/index.html)을 사용하면 개발자는 앱의 템플릿 디렉터리에 동일한 이름으로 자신만의 템플릿을 만들고 템플릿 시작 부분에 다음 줄을 포함할 수 있습니다.

{% extends "admin:admin/index.html" %}
로그인 후 복사

내 이 확장 템플릿을 통해 개발자는 기본 템플릿의 특정 부분을 재정의하는 블록을 정의할 수 있습니다. 예를 들어 사이드바에 추가 링크를 추가하려면 다음 블록을 생성할 수 있습니다.

{% block sidebar %}
    {{block.super}}
    <div>
        <h1>Extra links</h1>
        <a href="/admin/extra/">My extra link</a>
    </div>
{% endblock %}
로그인 후 복사

Django에서 문제 해결

최신 및 이전 기준 Django의 LTS 버전(3.2, 2.2, 1.11)에서 app_directories 템플릿 로더를 사용한 관리 템플릿의 재정의 및 확장은 문서화된 문제로 남아 있습니다. 그러나 향후 Django 버전에서 이 문제가 해결될지는 알 수 없습니다.

위 내용은 Django 관리 템플릿을 교체하지 않고 확장하고 재정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿