Django의 템플릿에 일부 레코드를 반환하는 함수를 전달하고 있습니다. 이 함수를 호출하고 결과를 반복합니다.Django 템플릿에서 인수를 취하는 함수를 호출하는 방법은 무엇입니까?
{% for item in my_func(10) %}
그래도 작동하지 않습니다. 함수의 반환 값을 변수로 설정하려고 시도했지만 변수를 반복했지만 Django 템플릿에서 변수를 설정할 수있는 방법이없는 것 같습니다.
정상적인 방법이 있습니까?
Django의 템플릿에 일부 레코드를 반환하는 함수를 전달하고 있습니다. 이 함수를 호출하고 결과를 반복합니다.Django 템플릿에서 인수를 취하는 함수를 호출하는 방법은 무엇입니까?
{% for item in my_func(10) %}
그래도 작동하지 않습니다. 함수의 반환 값을 변수로 설정하려고 시도했지만 변수를 반복했지만 Django 템플릿에서 변수를 설정할 수있는 방법이없는 것 같습니다.
정상적인 방법이 있습니까?
템플릿에 인수가 필요한 함수를 호출 할 수 없습니다. 대신 Write 템플릿 태그 또는 필터.
나는 장고의 템플릿에 대신하는 기능으로, 나에게
가 왜 변수 저장 함수의 반환 값을 템플릿 장고에 통과하지 못한 일부 레코드를 반환하는 함수를 전달 해요?
나는 변수에 fuction를의 반환 값을 설정하고 변수를 반복하려고했으나 장고 템플릿에 변수를 설정하는 방법은없는 것 같다했습니다.
템플릿 대신 장고보기에서 변수를 설정하고 템플릿에 전달해야합니다.
장고 템플릿은 임의의 파이썬 코드를 호출 할 수 없습니다. 디자이너가 템플릿을 작성하는 환경에서 보안 및 안전 기능을 제공하며 비즈니스 로직을 템플릿으로 마이그레이션하지 못하게합니다.
이렇게하려면 Jinja2 템플릿 (http://jinja.pocoo.org/docs/) 또는이를 지원하는 다른 템플릿 시스템을 사용하도록 전환 할 수 있습니다. django의 다른 부분은 의도적으로 단방향 프로세스이므로 사용하는 템플릿의 영향을받지 않습니다. 원한다면 같은 프로젝트에서 여러 템플릿 시스템을 사용할 수도 있습니다.
개체가있는 경우 @property
으로 정의하여 전화를 걸지 않고 결과를 얻을 수 있습니다. 예 : 다음 템플릿
class Item:
@property
def results(self):
return something
는 :
<% for result in item.results %>
...
<% endfor %>
당신이 다음 다른 템플릿 파일과 "기능"을 생성하고 할 수있는 것은에 매개 변수를 전달 해당 파일을 포함합니다.
내부 index.html을 매우 슬픈 song_player_list.html
<ul>
{% for song in songs %}
<li>
<div id='songtile'>
<a href='/songs/download/{{song.id}}/'><i class='fa fa-cloud-download'></i> Download</a>
</div>
</li>
{% endfor %}
</ul>
버튼을 클릭했을 때만'{% include "song_player_list.html"songs = latest_songs %} "를 어떻게 제어 할 수 있습니까? 나는 함수에 넣으려고했지만'장고 틀'은 페이지를로드 할 때마다 그것을 실행한다. –
내부
. 나는 더 간단한 방법을 원합니다. – cleg
나는 파이썬'@ property'를 내장 한 솔루션이 상황에 따라 더 나은 해결책이라고 생각합니다. – jrast
예, 그렇다고해서 문제가 해결되지는 않습니다. Django는 인수가 필요하지 않으면 함수를 자동으로 호출합니다.myfunc가 인자가없는 함수 인 경우'{% for item in myfunc %} '를 쓰는 것은'for item in myfunc()'와 같습니다. django의 유일한 실제 제한은'@ property'가 해결하지 못하는 인수를 필요로하는 함수를 호출하는 것입니다 (물론 템플릿의 일부 속성을 설정하여 인수로 사용할 수도 있지만 특히 깨끗하지는 않습니다) – matts1