나는 주식 webapp2 프레임 워크와 Django 템플릿 엔진을 사용하는 GAE 앱을 가지고 있습니다. 이 설정은 Django의 내장 {% url %} 템플릿 태그를 지원하지 않습니다.장고 템플릿에서 webapp2.uri_for 사용
URL을 내 템플릿에 하드 코딩하지 말고 내 템플릿 내에서 webapp2.uri_for 기능을 사용하고 싶습니다. 이것이 가능한가? 그렇다면 어떻게해야합니까? 사용자 지정 서식 태그를 작성
나는 주식 webapp2 프레임 워크와 Django 템플릿 엔진을 사용하는 GAE 앱을 가지고 있습니다. 이 설정은 Django의 내장 {% url %} 템플릿 태그를 지원하지 않습니다.장고 템플릿에서 webapp2.uri_for 사용
URL을 내 템플릿에 하드 코딩하지 말고 내 템플릿 내에서 webapp2.uri_for 기능을 사용하고 싶습니다. 이것이 가능한가? 그렇다면 어떻게해야합니까? 사용자 지정 서식 태그를 작성
네, 가능의 장고 태그의 소스 코드를 살펴있을 수 있습니다 참조하십시오. 나는 오늘 같은 질문을했고 다음 템플릿 태그로 끝났다. django "as"문법을 지원하여 django url template 태그에서 가져온 기능을 원했습니다.
from django import template
import webapp2
register = template.Library()
def uri_for(parser, token):
"""Webapp2 uri_for django template tag"""
bits = token.split_contents()
if len(bits) < 2:
raise template.TemplateSyntaxError("'%s' takes at least one argument (path to a view)" % bits[0])
view_name = bits[1]
as_var = None
if len(bits) >= 2 and bits[-2] == 'as':
as_var = bits[-1]
return UriForNode(view_name, as_var)
uri_for = register.tag(uri_for)
class UriForNode(template.Node):
"""Uri for node"""
def __init__(self, uri, as_var=None):
self.uri = uri
self.as_var = as_var
def render(self, context):
view = webapp2.uri_for(self.uri)
if self.as_var:
context[self.as_var] = view
return ''
return view
webapp2는 맞춤 Django 태그를 지원하지 않습니까? 그렇습니다. – dfrankow