내 앱으로 좀 더 많은 사용자 정의 템플릿 태그를 구현하여 더 잘 구조화하려고합니다. 성가신 부분은 자습서 형식의 게시물을 따라 코드 &을 얻은 것입니다. 그래도 작동하지 않습니다.Django에서 사용자 정의 템플릿 태그를 구현하는 데 문제가 있습니다.
일부 태그를 구현하기 위해 this 및 current_time을 따르려고했지만 이해가 안되는 오류가 나타납니다.
우선, 최신 게시물의 필터, 또는 내 경우 최신 화면에 내 응용 프로그램은 '갤러리'라고하며 나의 모델은 '스크린 샷'라고, 내 프로젝트 'S3gallery'라고 Exception Value: No module named gallery
제공합니다. 태그의 모델 인자는 docs에서 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 %}
를 사용하여 템플릿과 내가 태그에 '부하'를 사용하지 않는 본 적이 예제에서 그것을로드하려고하지만 난 할 경우 장고 태그를 인식하지 않습니다. 나는 그것에 의해 길을 잃었지만, 나는 올바른 길로 가고 있다고 생각합니다. 이것에 대한 도움은 크게 감사 할 것입니다.
브릴리언트. 고맙습니다. 이제는 더 많은 의미가 있으며 두 태그 모두 오류를주지 않고 현재 시간이 표시되므로 올바른 방향의 한 단계가됩니다 : D –