Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在django中动态加载数据_Javascript_Python_Jquery_Django_Ajax - Fatal编程技术网

Javascript 如何在django中动态加载数据

Javascript 如何在django中动态加载数据,javascript,python,jquery,django,ajax,Javascript,Python,Jquery,Django,Ajax,在过去的几天里,我一直在学习django,我正在尝试构建一个非常简单的应用程序,它包含以下内容: models.py class Stock(models.Model): date = models.DateField() price = models.IntegerField() views.py def index(request): list_dates = Stock.objects.order_by('date').values_list('date', f

在过去的几天里,我一直在学习django,我正在尝试构建一个非常简单的应用程序,它包含以下内容:

models.py

class Stock(models.Model):
    date = models.DateField()
    price = models.IntegerField()
views.py

def index(request):

    list_dates = Stock.objects.order_by('date').values_list('date', flat = True).distinct()

    my_dict = {'list_dates' : list_dates}

    return render(request, 'stocks/index.html', context = my_dict)
index.html

<body>
    <select name="date" id="date">

        <option value="select">Select Data</option>

        {% for date in list_dates %}
        <option value="{{date}}">{{date}}</option>
        {% endfor %}

    </select>

    <h1>{{price here}}</h1>

</body>

选择数据
{列表中的日期为%u日期%}
{{date}}
{%endfor%}
{{price here}}
这是最终概念的一个非常简化的版本,它将包含除价格之外的更多领域

我想做的是:

  • 获取用户在选择标记上选择的日期

  • 使用它访问django数据库,然后只加载与所选日期匹配的价格

  • 将其插入h1标记中

  • 当选择标记上的日期更改时刷新此选项

最简单的方法是什么


谢谢

首先,我建议您使用django表单,这将为您生成所有锅炉板html。关于您的问题,当您希望停留在同一页面(例如过滤、输入验证)时,提交请求的标准方法是使用ajax

我将在下面链接一些关于如何执行ajax请求的更详细的解释,但基本上可以分解为:

  • 从DOM获取输入(即用户提交/选择的股票)
  • 向负责查询数据库的视图发送ajax请求
  • 从视图返回数据(即价格)并进行渲染
  • 关于如何将ajax与django的视图一起使用的简单说明。把它通读一遍,试着使它适应你的需要

    还可以找到一个更复杂但更符合您需求的示例


    关键的一点是理解ajax是如何工作的,从视图中传递什么,以及如何传递。剩下的是一个简单的db查询,从您的示例代码中,您似乎知道如何执行该查询。如果您仍然有困难,在尝试之后,发布您的尝试,我将进一步帮助您。首先,我建议您使用django表单,这将为您生成所有锅炉板html。关于您的问题,当您希望停留在同一页面(例如过滤、输入验证)时,提交请求的标准方法是使用ajax

    我将在下面链接一些关于如何执行ajax请求的更详细的解释,但基本上可以分解为:

  • 从DOM获取输入(即用户提交/选择的股票)
  • 向负责查询数据库的视图发送ajax请求
  • 从视图返回数据(即价格)并进行渲染
  • 关于如何将ajax与django的视图一起使用的简单说明。把它通读一遍,试着使它适应你的需要

    还可以找到一个更复杂但更符合您需求的示例

    关键的一点是理解ajax是如何工作的,从视图中传递什么,以及如何传递。剩下的是一个简单的db查询,从您的示例代码中,您似乎知道如何执行该查询。如果您仍然有困难,在尝试之后,发布您的尝试,我将进一步帮助您