제목, 가격, 설명 및 이미지 필드가있는 간단한 모델이 있다고 가정 해보십시오. 3 html 출력/블록을이 모델의 각 개체에 대해 다시 사용할 수 있습니다. 추가 된 '복잡성'을 위해 2 개의 출력이 결합되어 3 번째가됩니다. 그래서, 여기에이 3 개의 출력이 템플릿에서 어떻게 생겼는지가 나와 있습니다.모델 개체를 기반으로 재사용 가능한 HTML 블록을 만드는 방법
output_image
<span class="output_image"><img src="{{ object.image.url }}" alt="{{ object.title}}></span>
<ul class="output_info">
<li>{{ object.title }}</li>
<li>Price: {{ object.price }}</li>
<li>{{ object.description }}</li>
</ul>
output_all output_info (래핑 이전 2)
<div class="output_all">
<span class="output_image">...</span>
<ul class="output_info">...</ul>
</div>
내가 검색 페이지에 output_image 사용하려면, 그리고 목록에 output_all 수 고급 검색 등이 있습니다. 따라서이 출력을 한 번만 작성하고 다시 사용하기를 원합니다. 이것을 달성하는 가장 좋은 방법은 무엇입니까?
처음에는 형식화 된 html을 반환 할 모델 클래스에 메서드/속성을 추가 할 것을 고려했습니다. 이것이 효과가 있었고 템플릿에 {{ object.output_all }}
을 호출 할 수있었습니다. 이런 식으로 HTML을 출력하는 것은 나쁜 습관입니까?
다른 방법에 대해서도 간략하게 살펴 보았습니다. 포함 태그는 작동하는 것처럼 보이지만 output_all 사례의 '전체'버전으로 테스트했을뿐입니다 (즉, output_all에 다른 2 개의 출력 태그가 아직 중첩되어 있지 않음). 이것은 올바른 방법이며, 태그를 '중첩'할 수 있습니까?
내가 귀하의 질문을 이해한다면, 나는 이것이 당신을 도울 수 있다고 생각합니다 : https://github.com/clintecker/django-chunks – cor
닫기,하지만 정적 인 내용 인 것 같습니다. 내가 선택한 개체를 기반으로 동적으로 만들어진 콘텐츠가 필요합니다. – neRok