저는 장고를 처음 사용합니다. 템플릿을 배열로 전달할 때 뷰를 사용할 수있는 방식으로 블록 상속 (복수 script
또는 style
태그)을 사용하여 여러 번 템플릿에서 html을 반복하는 것이 가장 좋은 방법인지 알고 싶습니다.Django 템플릿 반복 패턴
여러 상속과 같은 것을 사용하여이 작업을 수행 할 수 있다고 생각했지만 어떻게 구현해야할지 모르겠다.
저는 장고를 처음 사용합니다. 템플릿을 배열로 전달할 때 뷰를 사용할 수있는 방식으로 블록 상속 (복수 script
또는 style
태그)을 사용하여 여러 번 템플릿에서 html을 반복하는 것이 가장 좋은 방법인지 알고 싶습니다.Django 템플릿 반복 패턴
여러 상속과 같은 것을 사용하여이 작업을 수행 할 수 있다고 생각했지만 어떻게 구현해야할지 모르겠다.
정확하게 이해하면 다음과 같이 할 수 있다고 생각합니다.
def ExampleView(request):
items=___ #Whatever objects you want to work on
return render(request, 'template.html', {'items': items,})
그리고 템플릿.
template.html
...
{% for item in items %}
<-- Whatever you want to do for each item -->
{% endfor %}
오해하는 경우 알려 주시기 바랍니다.
흠 당신의 질문은 아직 명확하지 않습니다. 그러나 일반적으로 이것은 장고에서 템플릿을 만드는 방법입니다.
base.html
이라는 주 파일이 하나 있는데, 다른 모든 템플릿이 확장/상속하는 기본 템플릿입니다. base.html
에서 당신이 block
를 정의 할 수 있습니다, 그리고 아이 템플릿, 당신은 그 블록에 정보를 추가 할 수 있습니다 additional_css
, content
및 additional_js
:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Title</title>
<link rel="stylesheet" href="{{ STATIC_URL }}css/main.css">
{% block additional_css %}{% endblock %}
<script src="{{ STATIC_URL }}js/vendor/modernizr-2.6.2-respond-1.1.0.min.js"></script>
</head>
<body>
{% block content %}{% endblock %}
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
{% block additional_js %}{% endblock %}
</body>
</html>
그래서 당신이 예에서 볼 수있는, 내가 3 개 블록을 정의했다. 아이 템플릿에서 수행 할 수 있습니다 그 블록을 확장하고, 예를 들어 템플릿 이름
child.html
이, 원하는 정보를 포함
당신이 블록의 템플릿에 목록을 통과하려면
{% extends "base.html" %}
{% block additional_css %}
<link rel="stylesheet" href="{{ STATIC_URL }}css/child.css">
{% endblock %}
{% block content %}
<h1>Welcome to my site!</h1>
{% endblock %}
, 즉 정직의를. 보기에서 전달 된 사용자의 목록이 호출 all_js_files
말을하자, 템플릿을 가질 수 있습니다
{% block additional_js %}
{% for js_file in all_js_files %}
<script src="{{ js_file }}"></script>
{% endfor %}
{% endblock %}
그냥 당신에게 기본 아이디어를 제공 할 수 있습니다.