模板的表单参数中的值未在View中传递

时间:2019-03-21 15:46:39

标签: html django forms django-views

我有一个学生正在使用Map<String, List<CheckPoint>> map = checkPointsList.stream() .collect(Collectors.groupingBy(CheckPoint::getTag)); Optional.ofNullable(map.get("A")) .orElse(Collection.emptyList()) .reduce((left, right) -> right) .orElse(null); // same for "B" and "C" 框架来构建应用。

她有一个包含滑块的模板。模板中此表单的部分为:

django

接下来,她需要处理滑块的值和<form method="GET" enctype="multipart/form-data"> <div class="slidecontainer"> <input name="range" type="range" min="{{ beginframe }}" max="{{ endframe }}" onclick="sLider.oninput();" class="slider" id="range"> <p>Value: <span id="demo"></span></p> <button type="button" class="button4" name="showframebtn" id="showframebtn" >Show frame</button> </div> <input type="hidden" name="fname1" value="{{video_path}}" style=" margin-top: 15px; margin-left: -45px;width: 410px; height: 40px;"> </form> 的值。这是她的代码在views.py中的一个函数:

{{video_path}}

但是,隐藏的输入参数的值未传递。她获得的价值是elif request.method == 'GET' and 'f' in request.GET: if framenumber: print(framenumber) fname_1 = request.GET.get('fname1') print("fname", fname_1)

使用浏览器中的None,我们可以看到隐藏参数确实具有值。

page source

您能帮助我们解决此问题吗?是因为她正在使用按钮参数吗?

提前谢谢!

views.py的完整功能代码可以在这里找到:

<form  method="GET" enctype="multipart/form-data">
<div class="slidecontainer">

    <input name="range" type="range" min="1" max="11"  onclick="sLider.oninput();" class="slider" id="range">
    <p>Value: <span id="demo"></span></p>
    <button type="button" class="button4"  name="showframebtn" id="showframebtn" >Show frame</button>
</div>
    <input type="hidden" name="fname1" value="C:/Users/Username/PycharmProjects/thesis/static/3/actual_video.avi" style=" margin-top: 15px; margin-left: -45px;width: 410px; height: 40px;">

</form>

1 个答案:

答案 0 :(得分:0)

我认为问题是您在表单上设置了method="GET",但是您正在将表单编码为multipart/form-data。编码为multipart/form-data的数据分为多个部分,无法使用GET在URL中发送。

如果您希望表单发出GET请求,则应从表单中删除enctype="multipart/form-data。这将导致表单使用可以在URL中发送的默认编码发送数据。

或者,如果您希望使用multipart/form-data,则应将表单方法更改为method="POST"。如果这样做,还需要修改视图:

elif request.method == 'POST' and 'f' in request.POST:
    ...
    fname_1 = request.POST.get('fname1')