2017-11-09 20 views

答えて

1

これに対する別のアプローチは、before_serve_documentセキレイフックにフックすることができます。

http://docs.wagtail.io/en/v1.13/reference/hooks.html#document-serving

あなたが文書に基づいて、このように応答をカスタマイズすることができ、ここでフックがどのように動作するかを示してかなりラフ例があります。

でも、ファイルを表示する表示可能URLを生成する方法を解決する必要があります。

from wagtail.wagtailcore import hooks 
from django.shortcuts import redirect 


@hooks.register('before_serve_document') 
def serve_document(document, request): 
    # eg. use document.file_extension, document.url, document.filename 
    if document.file_extension == 'pdf': 
     google_view_pdf_base = 'https://docs.google.com/viewer?url=' 
     # document.url is a relative URL so more work needed here 
     # also URL should probably be URL encoded 
     redirect_url = google_view_pdf_base + document.url 
     # must return an instance of HTTPResponse 
     return redirect(redirect_url) 
    # no return means the normal page serve will operate 
1

ドキュメントへのリンクをダウンロードするのはかなり標準的です。主にブラウザ内のドキュメントのプレビューがブラウザごとに実際に異なるためです。

URLをPDFに解析し、target="_blank"属性を追加するテンプレートフィルタを追加できます。

これはオンラインでホストされているPDFファイルのために、ほとんどのブラウザで動作するかもしれません: カスタムフィルタを作成する方法https://stackoverflow.com/a/27392750/8070948

https://docs.djangoproject.com/en/1.11/howto/custom-template-tags/#registering-custom-filters

関連する問題