0

내가 내 worktree 관리자보기 여기
에서 템플릿을 사용
장고 1.11 사용하는 템플릿은 제목과 같은

project 
|-- project/ 
|-- myapp/ 
    |-- templates/ 
     |-- admin/ 
      |-- file.html 

settings.py

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [os.path.join(BASE_DIR, 'myapp/templates')], 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
      ], 
     }, 
    }, 
] 
을 문제가되는 데 말했다

ModelAdmin.py

class ModelAdmin(admin.ModelAdmin): 
    actions = ['export'] 

    def export(self,request, queryset): 
     paragraphs = ['first paragraph', 'second paragraph', 'third paragraph'] 
     pdfkit.from_file('file.html', 'out.pdf', paragraphs) 
admin.site.register(Model, ModelAdmin) 

하지만 난 "해당 파일 : file.html과"점점하지하고 오류를 enter image description here

enter image description here

+0

오류 로그를 게시 할 수 있습니까? –

+0

오류 메시지를 이미지로 게시하지 마십시오. 텍스트를 복사하여 붙여 넣습니다. – Alasdair

+0

'myapp/templates'를'DIRS'에 포함 할 필요는 없습니다. 'myapp'가'INSTALLED_APPS'에있는 한 app 디렉토리 로더에 의해 검사 될 것입니다. – Alasdair

답변

0

시도 :

pdfkit.from_file('admin/file.html', 'out.pdf', paragraphs) 

내가 파일 내부 templates/admin 아니라 내부 templates 생각합니다.

+0

동일 오류입니다. – leila

0

pdfkitTEMPLATES 설정에 대해 알지 못합니다. 프로젝트 디렉토리에 상대적인 경로를 제공해야합니다.

pdfkit.from_file('myapp/templates/admin/file.html', 'out.pdf', paragraphs) 

그러나 이것은 file.html을 html 파일로 취급합니다. 렌더링하려는 Django 템플릿이 있다면 render_to_stringfrom_string을 사용할 수 있습니다.

from django.template.loader import render_to_string 
html = render_to_string(request, 'admin/file.html', {...}) 
pdfkit.from_string(html, 'out.pdf') 
+0

"TemplateDoesNotExist"오류가 발생합니다. – leila

+0

정보가 충분하지 않습니다. 전체 오류 메시지는 Django가 문제를 디버그하는 데 도움이되는 디렉토리를 알려줄 것입니다. 'myapp'와'file.html'과 같은 이름을 사용하면 더 어려워집니다. – Alasdair

+0

i는 modelAdmin에서 html을 사용하여 종료했습니다. – leila