在我的网络应用程序中,用户可以上传文件(pdf' s,ms-docs等)。我将文件存储在/ media /中,但我似乎找不到一种方法可以在网站上再次下载文件(对于其他用户)。
这是views.py中处理上传表单的函数:
def upload(request):
if request.method == "POST":
form = UploadForm(request.POST or None, request.FILES or None)
if form.is_valid():
resourceupload = form.save(commit=False)
resourceupload.uploadedBy = request.user
resourceupload.upload_date = timezone.now()
resourceupload.save()
return redirect('course', pk=resourceupload.course.pk)
else:
form = UploadForm()
return render(request, 'main/upload.html', {'form': form})
这是相关的模板:
<form method="POST" enctype="multipart/form-data" class="post-form">
{% csrf_token %}
<table>
<tr>
<td>{{ form.title.label_tag }}</td>
<td>{{ form.title }}</td>
</tr>
<!--<tr>
<td>{{ form.major.label_tag }}</td>
<td id="majorcs" >{{ form.major }}</td>
</tr>-->
<tr>
<td>{{ form.course.label_tag }}</td>
<td id="coursejs">{{ form.course }}</td>
<td>
<button type="button" onclick="window.document.location='{% url "addcourse" %}'"}>Add Course</button>
</td>
</tr>
<tr>
<td>{{ form.resourcetype.label_tag }}</td>
<td>{{ form.resourcetype }}</td>
</tr>
<tr>
<td>{{ form.resourcefile.label_tag }}</td>
<td>{{ form.resourcefile }}</td>
</tr>
</table>
<button type="submit" class="save btn btn-blog pull-right">SAVE</button>
</form>
上传很顺利,但我似乎无法找到使资源文件可下载的方法。
这是模板中的一个片段,其中列出了可以下载的资源:
{% for res in resources%}
<tr>
<th scope="row">{{res.resourcetype}}</th>
<td>{{res.title}}</td>
<td>{{res.uploadedBy}}</td>
<td><a href="">{{res.resourcefile}}</a></td>
</tr>
{% endfor %}
这个想法是用户可以在点击res.resourcefile
时下载文件