장고가 제공하는 인증 및 권한 부여 시스템을 사용하려고하는데 로그인/로그 아웃 기본 기본보기가 장고 템플릿을 기대할 수 있으므로 내 Jinja2 base.html
파일을 사용하여 확장 할 수 없습니다. 엔진.Django 인증을 Jinja2 템플릿과 올바르게 통합하는 방법은 무엇입니까?
'base.html'을 복제하고 구문을 Django 템플릿으로 변경하여이 문제를 해결할 수 있었지만이 접근 방식을 통해 다른 템플릿 언어로 된 두 개의 동일한 파일에 의존하게되었습니다.
그러나 이제는 다른 문제가 있습니다. Jinja2 템플릿 context
에있는 user
개체에 액세스 할 수 없습니다. 장고 템플릿에서 수행 할 수 있습니다.
File "/home/dir/workspace/project/venv/local/lib/python2.7/site-packages/jinja2/environment.py", line 430, in getattr return getattr(obj, attribute)
UndefinedError: 'user' is undefined
내 Jinja2 템플릿 : '나는 액세스 할 수 없습니다'라고하여
{% if user.is_authenticated %}
<li>User: {{ user.get_username }}</li>
<li><a href="{% url 'logout'%}?next={{request.path}}">Logout</a></li>
{% else %}
<li><a href="{% url 'login'%}?next={{request.path}}">Login</a></li>
{% endif %}
내 질문은, 어떻게 내가이 문제를 해결 갈 수 있나요? 장고 템플릿을 좀 더 지저분 해지기 때문에 장고 템플릿을 되돌려 줘야할까요?
감사합니다. 다시 한번 감사드립니다. @Alasdair! 한 가지 더 질문이있어서 내장 된 django-registration은 login.html/logged_out.html 등의 템플릿을 사용합니다. 내 jinja base.html로 확장 할 수 있습니까? 아니면 별도의 장고 템플릿 기반을 사용해야합니까? .html? –
Jinja 템플릿으로 Django 템플릿을 확장하거나 그 반대로 확장 할 수 없습니다. Jinja와 Django에 기본 템플릿을 사용하지 않으려 고 노력할 것입니다. 불필요한 복제와 같은 소리입니다. Jinja 템플릿으로 Django 템플릿을 사용하는 Django 관리자가 사용하기 때문에'registration /'템플릿을 Jinja 템플릿으로 덮어 쓰려고하면 문제가 발생할 수 있습니다. Jinja2 템플릿을 가리 키도록'django-registration'과 내장 된 인증 뷰를 사용자 정의 할 수 있습니다. – Alasdair