python - 如何在 Django 中下载准确的上传文件?
问题描述
我正在编写一个代码来使用我通过 Django 中的模型上传的链接下载我的文件。
即在我的model.py中
class uploadFile(models.Model):
id=models.CharField("Book id ",max_length=200,null=True,default="")
name=models.CharField("Book name",max_length=200,null=True,default="")
file=models.FileField(upload_to="media/ebooks")
在我的view.py中,我有 2 个功能
def getdata(request):
books=uploadFile.objects.all()
n=len(QPapers)
print("hello",QPapers)
params={'QPapr':QPapers,'total_items':n}
return render(request,'index.html',params)
def getdata2(request,nameparam):
books=uploadFile.objects.all().filter(name=nameparam)
n=len(QPapers)
print("hello",QPapers)
params={'QPapr':QPapers,'total_items':n}
return render(request,'index.html',params)
在index.html中
<a href="{% 'getdata' %}" download>download1</a>
对于这个 urls.py 是 path('getdata',views.pdfNotes,name='pdfNotes'),
在这里,文件使用上面的代码正确下载,但是当我使用下面的代码并调用带有书名的第二个函数时,而不是下载文件,我已经上传了它下载index.html
页面。
<a href="{% 'getdata2' 'book1' %}" download>download2</a>
对于这个 urls.py 是 path('getdata2/<str:name>/',views.pdfNotes,name='pdfNotes'),
是因为我使用的过滤器,还是其他地方的问题?我也想下载特定文件,这就是我在这里使用过滤器的原因......
解决方案
您的视图参数的名称是nameparam
,而不是,因此您可以在 URL 模式中指定它:name
# ↓ not name
path('getdata2/<str:nameparam>/',views.pdfNotes,name='pdfNotes'),
推荐阅读
- javascript - 带有单页应用程序抛出错误的 Office Dialog API
- gitlab - 如何在 gitlabs 登录后设置应用程序代理?
- laravel - Laravel 5.7 在视图中重新格式化日期时间戳
- reactjs - how to pass prop into rowrender of react-virtualized
- gatsby - How do I make GraphQL wait for posts from a separate repo?
- excel - 保存宏在一台机器上工作,而不是在另一台机器上
- c# - 如何使 emf 文件 dpi 感知
- php - 为什么查询不会像在 phpmyadmin 中那样返回显示名称?
- php - Codeigntier:发布数据在 Codeigntier apis 中不起作用
- c# - Will this fail if the returned number of records is below 5000?