をDjangoのためにダイナミックダウンロードパスを設定します。関数ではなく、この場所に文字列変数を期待するので、多くのエラーが発生します。は私が変更することで、この部分をDjangoのためにダイナミックダウンロードパスを設定するにはどうすればよい
私のhtmlでそのためのビューにユーザー
{% for printforme in print_user_charges %}
<tr>
<td>{{ printforme.invoice_number }}</td>
<td>{{ printforme.price }} €</td>
<td>{{ printforme.reason }}</td>
<td>{{ printforme.customer }} {{ printforme.customer.surname }}</td>
<td>{{ printforme.charge_date }}</td>
<td> <a href="{% url 'download_pdf' printforme.upload_pdf.id %}"> Download </a></td>
にダウンロードリンクドライブをすべてのモデルを示している。
def DownloadPdf(request, charge_id):
with open(os.path.join(settings.MEDIA_ROOT, get_file_path), 'rb') as fh:
response = HttpResponse(fh.read(), content_type="application/pdf")
response['Content-Disposition'] = 'filename=invoice.pdf'
return response
私のようなユーザーIDにPDF、ベースを保存しますこれ:
def invoice_path_base_to_usersid(instance, filename):
return 'user_{0}/{1}'.format(instance.customer.id, filename)
私はメディアにPDFを保存/ USER_ {ID} /filename.pdf
私はcurrectアイテムをクリックすると、特定のpdfファイルをダウンロードする必要があります。 しかし、私はどのようにユーザーIDを使用し、開いている中にそれがユーザーが望む真っ直ぐな1つのpdfをダウンロードするかを知らない。
を望むようにそれを使用することができます。あなたの機能は何をしていますか?それは文字列を返しますか?あなたは実際にそれをどこでも呼んでいますか? –
私はプロジェクト全体の解決策を求めていませんでした。私はopen(...)関数の直接の文字列パス以外のものを渡す方法があればうまくいきません。 –
はい、もちろんです。文字列を返す関数を持っていて、そこで呼び出すと、Pythonはその違いを知ることができません。あなたは明らかにその中の1つを実行していませんが、実際のコードを見ることなく、何を知ることはできません。 –