2011-06-02 43 views
0

我的sdr_media.py位於此路徑中。Django錯誤:sdr_media'不是有效的標記庫:未找到模板庫sdr_media。如何消除這個錯誤?

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] 

回答

1

是的,它是。 templatetags目錄應該在app目錄中,而不是在templates目錄中。

例如myproject/myapp/templatetags/sdr_media.py

+0

我這樣做,但現在還是運氣 – Hick 2011-06-02 11:21:20

+0

@mekasperasky你有'INSTALLED_APPS'中的應用嗎? – DrTyrsa 2011-06-02 11:26:32

+0

@mekasperasky什麼是確切的錯誤信息? – arie 2011-06-02 11:31:43

0

剛剛有同樣的問題,並解決它:

  1. 申請DrTyrsa的回答(強制性)

  2. 重啓Django的服務器(強制)