下载(用户)上传的文件django

时间:2017-01-08 22:39:33

标签: django django-templates django-views

在我的网络应用程序中,用户可以上传文件(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

时下载文件

0 个答案:

没有答案