Я пытаюсь реализовать некоторые пользовательские теги шаблонов, чтобы немного улучшить их в моем приложении и лучше структурировать его.Раздражает то, что я следовал за постом типа учебника, чтобы получить код, и он все еще не работает.
Я пытался следовать этому и current_time для реализации некоторых тегов, но я получаю ошибки, которых я не понимаю.
Во-первых, фильтр последних сообщений, или в моем случае последние экраны, дает Exception Value: No module named gallery
Мой проект называется «S3gallery», мое приложение называется «галерея», а моя модель называется «скриншоты».Аргумент модели тега говорит, что в документах он принимает 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 %}
, и примеры, которые я видел, не используют 'load' в теге, но если я это сделаю, Django не распознает тег.Неужели я заблудился от этого, но думаю, что я иду по правильному пути.Любая помощь по этому вопросу будет принята с благодарностью:)