실제로 텍스트 필드에 참조를 저장하는 경우에는 기본적으로 간단한 마크 업 언어를 사용하여 참조를 저장합니다.
이 경우 템플리트가이 작업을 수행 할 수있는 장소라고 생각합니다.
필자는 불행히도 컨텍스트 변수에 필터를 만들고 쓰는 방법을 모르겠습니다. BTW
{% output_with_references article_content myreferencesvar %}
[snip]
<ul>
{% for ref in myreferencesvar %}
<li><a name="{{ ref.id }}">{{ ref.authors }}, {{ ref.year }}</a></li>
{% endif %}
</ul>
: 필터를 사용하는 동안 페이지 문맥에 쓸 수있는 방법이이 있다면, 나는 '그래서 그 대신 필터를 사용하여, 당신은, 뭔가 같은 태그를 사용해야 할거야 그것에 대해 알고 싶어.
업데이트
를 구현하려면, 당신은 같은 것을 사용하십시오 : 그래서 그냥 확인, 답장을 보내
from django.template import Library, Node, TemplateSyntaxError
register = Library()
class OutputWithReferencesNode(Node):
def __init__(self, input, ref_varnam='references'):
self.input = input
self.ref_varnam=ref_varnam
def render(self, context):
output = self.input
references = []
# process self.input
context[self.ref_varnam] = references
return output
@register.tag
def output_with_references(parser, token):
try:
fnctn, input, ref_varname = token.split_contents()
except ValueError:
raise TemplateSyntaxError, "%s takes the syntax %s text_to_output references_variable_name" % (fnctn,)
return OutputWithReferencesNode(input, ref_varname)
안녕하세요, 감사 : outputwithreferences이 myreferencesvar (인수 1 = 마크 업 텍스트를 작성해야 , 인수 2는 새로운 변수입니까?), 그러면 페이지 아래로 더 사용할 수 있습니까? –
예, 샘플 코드가 추가되었습니다. 하지만 테스트되지 않았습니다. –
마크 업에 대한 특정 구문을 설정하지 않은 경우 기존 템플릿 (예 : MediaWiki http://en.wikipedia.org/wiki/Wikipedia:Citing_sources)을 사용하는 것이 좋습니다. 그런 다음 mwlib (http://code.pediapress.com/wiki/wiki/mwlib)를 사용하여 마크 업을 파싱 할 수 있습니다. –