【问题标题】:How to get form data from django template language如何从 django 模板语言中获取表单数据
【发布时间】:2015-03-11 12:25:57
【问题描述】:

我是 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'],但我不确定如何检索该文件数据。

【问题讨论】:

    标签: javascript python html django forms


    【解决方案1】:

    您没有将 POST 变量的名称(即file_name)传递给页面。尝试将该行更改为:

    $.post('/accounts/download/', {file_name: $(this).attr('id')});
    

    id 属性使用引号也是一个好主意:

    <p id="{{ file.filename }}" class="file">{{ file.filename }}</p>
    

    然后您可以使用request.POST 字典简单地访问file_name。您不必实例化 Django 表单:

    @csrf_exempt
    def download(request):
        ...
        print request.POST.get('file_name')
        ...
    

    【讨论】:

    • 谢谢!完美运行。我现在开始更了解 django 了!
    猜你喜欢
    • 2012-01-06
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多