我的sdr_media.py就在这条路上。
geodjango/geographic_admin/templates/templatetags/sdr_media.py
我的layer_upload.html位于此文件夹
中 geodjango/geographic_admin/template/maps
代码是这个
{% load sdr_media %}
但是,仍然找不到sdr_media标记。 templatetags文件夹有 init .py,可以使用它。我的路径错了吗?
修改
这是sdr_media.py代码
from django import template
from django.conf import settings
register = template.Library()
@register.tag('sdr_media')
def geonode_media(parser, token):
try:
tagname, argument = token.split_contents()
argument = argument[1:-1] # get rid of quotes
if not argument in settings.MEDIA_LOCATIONS:
raise template.TemplateSyntaxError, '%s is not a valid resource name' % argument
return MediaNode(argument)
except ValueError:
raise template.TemplateSyntaxError, '%r requires a single argument' % token.contents.split()[0]
class MediaNode(template.Node):
def __init__(self, resource):
self.resource = resource
def render(self, context):
return settings.MEDIA_LOCATIONS[self.resource]
答案 0 :(得分:1)
是的,确实如此。 templatetags
目录应位于app目录中,而不是在templates目录中。
例如myproject/myapp/templatetags/sdr_media.py
答案 1 :(得分:0)
我会说:是的
该应用应包含模板标签 目录,与...相同的级别 models.py,views.py等。如果这样 尚不存在,创建它
https://docs.djangoproject.com/en/1.3/howto/custom-template-tags/#code-layout
答案 2 :(得分:0)
遇到同样的问题,并解决了它:
应用DrTyrsa的答案(强制性)
重启django服务器(必填)