현재 다소 복잡한 데이터 모델을 중심으로 장고 응용 프로그램을 작성하고 있습니다. 많은 사용 사례를 위해 유사하지만 약간 다른 템플릿 (graphviz 등 포함)을 만들어야합니다. DRY를 따라 "즉시"템플릿을 만들 수있는 방법이 있는지즉시/동적으로 템플릿을 만듭니다.
는 지금은, 예를 들어, 궁금 중첩 된 튜플을 기반으로합니다 (이 중 하나는 유스 케이스별로 정의됩니다).
static_template_case1.html
{% if program %}
{{ program.name }}
{% for process in program.process_set.all %}
{{ process.name }}
{% for step in process.step_set.all %}
{{ step.name }}
{% endfor %}
{% for control in process.control_set.all %}
{{ control.name }}
{% endfor %}
{% endfor %}
{% endif %}
다음과 같은 방향으로 무언가로 대체 :
는 실제로 나는이를 작성 중지하고 싶은 말template_generator.py
structure_case1 = ("program"("process"("step","control")))
def onTheFlyTemplate(structure):
# iterate through structure
# build template dynamically
# return template
onTheFlyTemplate(structure_case1)
나는 비슷한 것을 발견하지 못했고, 비행 중 템플릿을 생성 할 위치와 위치를 통합하는 방법도 아직 모릅니다. 뷰 내에서
은 (대신 loader.get_template('static_template_case1.html')
의) 좋은 출발점 것 같은 느낌이 든다. DRY 여기에 "과장"인 경우 올바른 방향뿐만 아니라 당신의 생각으로 나를 보내는 어떤 힌트
감사합니다. 뷰에서
:
랄프
편집
나는 다음을 수행하는 걸음 더 가까이있어
from django.template import Template
def templateGen():
return Template("Program: {{program.count}}")
@login_required
def test(request):
program = Program.objects.all()
t = templateGen()
c = RequestContext(request,locals())
return HttpResponse(t.render(c))
을 지금까지 개념의 증거입니다. 진짜 작업은 중첩 된 튜플을 청취하는 똑똑한 "templateGen()"을 작성하는 것입니다.
안녕하세요.하지만이 경우 템플릿 파일은 여전히 정적입니다. 전체 데이터 모델의 하위 집합을 나타내는 중첩 구조 (튜플 또는 dict)를 기반으로 생성하려고합니다. 원본 게시물을 다음과 같이 수정 한 내용을 보니 그 사이에 한 걸음 가까이 다가 갔을 것 같습니다. – szeta