我試圖實現一些自定義模板標籤到更多一點與我的應用程序和結構它更好。 令人討厭的部分是,我按照教程類型的帖子獲得代碼&它仍然無法正常工作。在Django中實現自定義模板標籤時遇到困難
我試圖按照this和current_time來實現一些標籤,但我得到的錯誤,我不明白。
首先,最新的帖子的過濾器,或在我的情況下,最新的屏幕給人 Exception Value: No module named gallery
我的項目被稱爲「S3gallery」,我的應用程序被稱爲「畫廊」和我的模式被稱爲「屏幕截圖」。標籤的模型arg在文檔中說,它使用app_name.Model_name,這是我給它的,所以我堅持這一點。
我的自定義標籤代碼如下所示;
from django.template import Library, Node
from django.db.models import get_model
register = Library()
class LatestContentNode(Node):
def __init__(self, model, num, varname):
self.num, self.varname = num, varname
self.model = get_model(*model.split('.'))
def render(self, context):
context[self.varname] = self.model._default_manager.all()[:self.num]
return ''
def get_latest(parser, token):
bits = token.contents.split()
if len(bits) != 5:
raise TemplateSyntaxError, "get_latest_screens tag takes exactly three arguments"
if bits[3] != 'as':
raise TemplateSyntaxError, "second argument to the get_latest_screens tag must be 'as'"
return LatestContentNode(bits[1], bits[2], bits[4])
get_latest = register.tag(get_latest)
我嘗試加載使用{% load get_latest gallery.screenshots 5 as recent_screens %}
我見過沒有在標籤使用「負荷」的例子模板,但如果我這樣做Django不識別標籤。我是否因此迷失了方向,但是我認爲我會走向正確的道路。 對此的任何幫助將不勝感激:)
輝煌。謝謝。現在,這使得更多的意義,我的標籤現在不會給出錯誤,並顯示當前時間,所以朝着正確的方向邁出了一步:D – 2012-03-15 14:21:32