从Django应用程序中的Python下拉列表中获取输入

从Django应用程序中的Python下拉列表中获取输入,python,django,Python,Django,我在这个问题上纠缠了几个星期,因为我不太熟悉如何设置ajax。我正在开发一个Django应用程序,它基本上是一个有下拉菜单的页面。我想得到用户从下拉菜单中选择的任何内容,并将该数据传递到my views.py,以便我可以使用该信息显示图形。现在图形部分正在工作(我可以将硬编码数据传递到其中,它将生成图形),我的下拉列表也在工作。但是,我不知道如何从下拉列表中获取数据到my views.py。这是它的样子 Display.html {% extends "RecordEvent/nav.html"

我在这个问题上纠缠了几个星期,因为我不太熟悉如何设置ajax。我正在开发一个Django应用程序,它基本上是一个有下拉菜单的页面。我想得到用户从下拉菜单中选择的任何内容,并将该数据传递到my views.py,以便我可以使用该信息显示图形。现在图形部分正在工作(我可以将硬编码数据传递到其中,它将生成图形),我的下拉列表也在工作。但是,我不知道如何从下拉列表中获取数据到my views.py。这是它的样子

Display.html

{% extends "RecordEvent/nav.html" %}

<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.5.0/Chart.min.js"></script>
</head>


{% block content %}
<div class="row">
    <div class="padded">
        <div class="download-header">
            <h3>Logs</h3>
            <div class="row inline download-header">
                <div class="col-lg-6">
                     <div class="dropdown padding col-lg-6">
                          <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
                            <span id="dropdownTitle" class="">Measurable</span>
                            <span class="caret"></span>
                          </button>
                          <ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
                            {% include 'RecordEvent/includes/EntryDropdown.html' %}
                          </ul>
                     </div>
                </div>
            </div>
        </div>
    </div>
</div>

<div class='padded'>
    <div class='col-sm-12' url-endpoint='{% url "api-data" %}'>
        <h1>Graph Data</h1>
        <canvas id="myChart" width="400" height="400"></canvas>
    </div>  
</div>

<script>
{% block jquery %}
var endpoint = 'display/api/chart/data/'
var defaultData = []
var defaultLabels = [];
$.ajax({
    method: "GET",
    url: endpoint,
    success: function(data){
        defaultLabels = data.labels
        defaultData = data.default
        console.log(data)
        var ctx = document.getElementById("myChart");
        var myChart = new Chart(ctx, {
            type: 'line',
            data: {
                labels: defaultLabels,
                datasets: [{
                    label: '# Measurable',
                    data: defaultData,
                    borderWidth: 1
                }]
            },
            options: {
                scales: {
                    yAxes: [{
                        ticks: {
                            beginAtZero:true
                        }
                    }]
                }
            }
        });
    },
    error: function(error_data){
        console.log("error")
        console.log(error_data)
    }
})

{% endblock %}

</script>

{% endblock %}
我需要从下拉列表中获取值,并将其放入注释中,其中的注释表示从下拉列表中获取值

我该怎么做?

通过表单发布

<form method='post' action = 'api url'>
<ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
                        {% include 'RecordEvent/includes/EntryDropdown.html' %}
                      </ul>
</form>
通过ajax发布

$('ul li').click(function(){
   $.ajax({
      url: <api url>,
      type:'post',
      data:{<name>:$(this).html()},
   })
$('ulli')。单击(函数(){
$.ajax({
网址:,
类型:'post',
数据:{:$(this.html()},
})

如何将表单提交给API这正是我遇到的问题,因为我不知道如何进行POST。现在只是显示表单。@Rheado您想通过ajax刷新页面或POST吗?每当用户从下拉列表中选择内容时,我都想将该值发送到views.py.For request.POST[]我是在python中传入变量名还是在html中传入表单名?ajax代码在表单后面的哪个位置?ajax代码在
{%block jquery%}
中与您在ajax
数据中给出的名称相同:{}
request.post[<name>]
$('ul li').click(function(){
   $.ajax({
      url: <api url>,
      type:'post',
      data:{<name>:$(this).html()},
   })