이 지침을 따르고 있으며 런타임 오류가 발생합니다.
maximum recursion depth exceeded while calling a Python object
문제는 내가 만들고 끝없는 템플릿 조회라는 사실에서 비롯된 것 같습니다.
더 구체적으로, base_site.html
에서 contrib/admin/templates/admin
내 django 프로젝트로 복사했습니다 templates/admin
. 지침에 따라 프로젝트 템플릿 디렉토리가에서 참조되며 django가 .NET의 디렉토리에서 먼저 템플릿을 찾으려고 시도하는 방식으로 설정되어 TEMPLATE_DIRS
있다고 확신합니다 . django 시스템 파일을 검색한다는 점 에서 요청 된 템플릿을 찾지 못한 경우에만 해당됩니다 .TEMPLATE_LOADERS
TEMPLATE_DIRS
TEMPLATE_DIRS
그러나 내 개인 관리 템플릿의 코드는
{% extends "admin/base_site.html" %}
{% load i18n %}
{% block branding %}
<h1 id="site-name">{% trans 'My Site Title - administration' %}</h1>
{% endblock %}
물론 장고에서 extends
확장하고 싶기 때문에 진술이 있습니다 base_site.html
. 하지만 사용 된 첫 번째 템플릿 로더는 django.template.loaders.filesystem.Loader
이고 내 사용자 지정 파일의 이름이 django 기본 파일 (예 : "base_site.html")과 같기 때문에 로더가 내 사용자 지정 파일을 계속 반복하고 궁극적으로 위에서 설명한 런타임 오류.
이 문제를 어떻게 해결할 수 있습니까?
단순히 완전히 재정의로 구성된 해결 방법을 찾았습니다 base_site.html
.
확장하는 대신의 base_site.html
코드 contrib/admin/templates/admin/base_site.html
를 내 자신 의 코드로 복사 base_site.html
하고 관련 필드를 변경했습니다. 그래서 실제로 base.html
대신 확장 base_site.html
하고 이름 충돌이 더 이상 나타나지 않습니다.
{% extends "admin/base.html" %}
{% load i18n %}
{% block title %}{{ title }} | {% trans 'My-Custom-Site site admin' %}{% endblock %}
{% block branding %}
<h1 id="site-name">{% trans 'My-Custom-Site site administration' %}</h1>
{% endblock %}
{% block nav-global %}{% endblock %}
단점은 필요한 것보다 많은 코드가 있지만이 솔루션에 만족한다는 것입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다