【问题标题】:Django - download file from FileField()Django - 从 FileField() 下载文件
【发布时间】:2019-02-27 06:21:14
【问题描述】:

我正在努力解决以下问题。我有一个FileField() 的数据库模型。

models.py

class InputSignal(models.Model):
    input_file = models.FileField(upload_to='signals/', null=False, )

显示此表中记录的视图。它还支持删除特定行。

views.py

def storage_list(request):

    signals = InputSignal.objects.filter(author=request.user)

    if request.method == 'DELETE':

        id = json.loads(request.body)['id']
        signal = get_object_or_404(InputSignal, id=id)
        signal.delete()

        return HttpResponse('')

    else:

        return render(request, 'storage_list.html', {'signals': signals})

此视图的模板如下所示:

template.html

{% for signal in signals %}
<li>
    <h4>{{ signal.name }}</h4>
    <p class="mb-0 pb-0">Date of addition:
      <b>{{ signal.add_date_pretty }}</b>
    </p>
    <p class="mb-1">Date of the last analysis: {{ signal.last_edit_date_pretty }}</p>
    <h6 class="mb-1">Adnotations:</h6>
    <p>{{ signal.adnotations | safe  | linebreaks | truncatewords:16 }}</p>

    <button class="btn btn-outline-warning mr-3">Download</button>
    <button data-id="{{ signal.id }}" onclick='delteSignal(this)' class="btn btn-outline-danger">Delete</button>
</li>
{% endfor %}

我想做的是点击“下载”按钮后通过浏览器将signal.input_file中的文件下载到磁盘。

【问题讨论】:

    标签: django django-models django-forms django-templates django-views


    【解决方案1】:
    <a href="{{ signal.input_file.url }}"><button class="btn btn-outline-warning mr-3">Download</button></a>
    

    你可以用它来下载。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      相关资源
      最近更新 更多