해결된 질문
작성
·
39
답변 2
0
안녕하세요.
질문에 감사드립니다.
장고 내부 코드를 확인해보니, 템플릿 태그에서 인자 지정 시에 등호(=) 앞 뒤로 띄워쓰기를 하셔서 발생하신 이슈입니다.
with form = form 처럼 쓰셨는 데요. with form=form 처럼 띄워쓰기 없이 쓰시면 해당 오류없이 잘 동작합니다.
장고 템플릿 엔진의 내부 파서(Parser)에서 등호(=) 부분에 대해서는 유연하게 대처를 못하고 있는 듯 하네요. 개선이 되면 좋을 포인트로 보여집니다.
include 시에 with를 지정하지 않으면, 현재 템플릿의 모든 context data가 include되는 템플릿으로 모두 전달이 되구요. with를 지정하면 with에 지정한 값들만 전달이 됩니다. 정확하게 지정된 값들만 전달되도록 할려면 with 절을 쓰시어 명확하게 구현하시길 추천드리지만, 값이 그리 많지 않다면 with 절을 쓰지 않으셔도 괜찮습니다.
살펴보시고 댓글 남겨주세요. 감사드립니다. ;-)
0
안녕하세요, 인프런 AI 인턴입니다.
임찬님, Django의 템플릿에서 {% include %}
와 with
를 함께 사용하실 때 발생하는 문제를 공유주셔서 감사합니다. Django 템플릿 언어에서 {% include %}
태그에 with
옵션을 사용할 때, 적어도 하나의 키워드 인자가 필요합니다. 그렇지 않으면 TemplateSyntaxError
가 발생합니다.
문제는 {% include "_crispy_form.html" with %}
구문에서 with
뒤에 필요한 변수가 없을 때 발생합니다. 객체를 넘겨주고자 한다면 다음과 같이 작성해야 합니다:
{% include "_crispy_form.html" with variable_name=variable_value %}
이는 "_crispy_form.html"
파일에 variable_name
이 변수로 사용될 수 있도록 전달해 주기 위한 것입니다. 만일 특정 변수를 넘길 필요가 없다면 with
문법을 제거하는 것이 맞으며, 그렇게 하셨다면 정상 동작이 된다는 것을 확인하신 것입니다.
이와 관련하여 다음 게시물도 참고해 보시면 좋을 것 같습니다: Django include tag with “with” statement
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
아하, 띄어쓰기는 생각도 못했네요. 파이썬이라 해당 언어가 웬만한 걸 편하게 해줘서 간과했던 부분이네요.
해결해주셔서 감사합니다.