2017-03-06 10 views
1

나는 Wagtail documentation on Snippets을 따라 내 자신을 만들기 전에 제대로 작동하는지 확인하려고합니다. 그러나 걸림돌을 발견하게되었습니다. models.py 파일에 광고에 대한 모델을 추가했으며 demo_tags.py 파일을 작성 중입니다. 현재는 읽기 -스 니펫에서 Wagtail 문서를 사용할 때 InvalidTemplateLibrary 예외가 발생했습니다.

from django import template 
from demo.models import * 

register = template.Library() 

... #don't know if something is supposed to go in here 

# Advert snippets 
@register.inclusion_tag('demo/tags/adverts.html', takes_context=True) 
def adverts(context): 
    return { 
     'adverts': Advert.objects.all(), 
     'request': context['request'], 
    } 

을 내가 개발 서버가 from demo.models import * 라인이 InvalidTemplateLibrary 오류를 만들어 실행하면.

분명히 나는 ​​'데모'와 '*'를 뭔가 바꾸는 것으로 바뀌지 만, 뭐라 구요?

또한 adverts.html이라는 템플릿을 만들 때 어떤 디렉토리가 들어가야합니까? templatetags 하나, 또는 다른 블로그 템플릿?

감사합니다.

+0

전체 오류 메시지는 무엇입니까? – gasman

+0

유효하지 않은 템플릿 라이브러리가 지정되었습니다. 'blog.templatetags.demo_tags'를로드하려고 할 때 발생하는 ImportError : 'demo'라는 이름의 모듈이 없습니다 –

답변

0

demo.models은 Wagtail 데모 웹 사이트에서 Advert 모델이 정의 된 모듈을 나타냅니다. 당신이 다른이 곳을 정의한 경우 - 예 : 새 할미새 프로젝트에 만들어지는 home/models.py 파일로 - 당신은 이에 따라이 설정을 변경해야합니다

from home.models import * 

당신이해야 귀하의 응용 프로그램 내 위치 templates/demo/tags/adverts.html에서 adverts.html 크레타 예배 규칙서. 더 일반적으로 - Django는 프로젝트의 모든 유효한 템플릿 위치 ('데모/태그/adverts.html')에 대한 경로에서 템플릿을 찾습니다.이 템플릿은 일반적으로 존재하는 모든 앱의 '템플릿'디렉토리를 의미합니다. 프로젝트에서

+0

'Advert.mouldels, BlogIndexPage, BlockPage'에서'Advert '가 정의 된 곳으로 변경되었습니다. 오류 메시지 :) –

+0

이제 모든 것을 주문한 것처럼 보입니다. 나는 모델과 템플릿을 만들었고 뷰가 작동하고 {% adverts %}를'blog_page' 템플릿에 추가했습니다. 그러나 개발 서버를 실행하고 블로그 페이지를 편집 할 때 스 니펫을 보거나 편집 할 수 없습니다. 내가 놓친 게 있니? –

+0

나는 당신이 의미하는 것을 이해하지 못한다. 그러나 그것은이 질문과는 별개로 들린다. 새로운 질문을하고 좀 더 자세하게 설명해주십시오. – gasman

관련 문제