我是Django的新手,我目前正在遍历过滤的QuerySet,并使用{{file.filename}}
将结果作为字符串发布在我的网站上。我无法通过双击获得该文件名。
$('.file').dblclick(function () {
$.post('/accounts/download/', $(this).attr('id'));
});
我的HTML是
{% for file in file_info %}
<p id= {{ file.filename }} class='file'>{{ file.filename }}</p>
{% endfor %}
如果以这种方式设置id是获取文件名的正确方法,我感到很困惑。
我的观点收到了请求:
def download(request):
person = request.user.id
form = Download_Form(request.POST)
print form
file_name = form['file_name'].value()
print file_name
return render(request, 'main.html')
上面的以下打印陈述是
<tr><th><label for="id_file_name">File name:</label></th><td><ul class="errorlist"><li>This field is required.</li></ul><input id="id_file_name" maxlength="300" name="file_name" type="text" /></td></tr>
None
我知道我无法将.value()
添加到form['file_name']
,但我不确定如何检索该文件数据。
答案 0 :(得分:0)
您没有将POST变量的名称(即file_name
)传递给页面。尝试将该行更改为:
$.post('/accounts/download/', {file_name: $(this).attr('id')});
对id
属性使用引号也是一个好主意:
<p id="{{ file.filename }}" class="file">{{ file.filename }}</p>
然后,您只需使用file_name
字典访问request.POST
即可。您不必实例化Django表单:
@csrf_exempt
def download(request):
...
print request.POST.get('file_name')
...