如何动态地将值从模板传递到视图,然后再接收它们?

时间:2019-04-08 06:16:04

标签: django templates

我有一个带有下拉列表和一些文本框的模板。我希望文本框中显示的值根据用户在下拉菜单中选择的内容进行动态更改。我该如何实现它们,以便当用户在下拉菜单中选择一个选项时,会从数据库中获取相应的数据并显示在这些文本框中?

1 个答案:

答案 0 :(得分:0)

这是一个简单的例子:

html

<select>
  <option val="mercedes">Mercedes</option>
  <option val="toyota">Toyota</option>
</select>

js

$('select').change(function (e) {
  e.preventDefault();
  var car = $(this).val();

  $.ajax({
    method: "GET",
    url: "{% url 'car_data' %}",
    data: {"car": car}
  }).done(function (response) {
    console.log(response)  // Do whatever you want with the response
  }).fail(function (err) {
    console.log(err)
  })
})

视图

def get_car_data(request):
    car = request.GET['car']
    car_obj = CarData.objects.get(car=car)

    data = {"car_details": car_obj.details}  # If .details exists of course
    return JsonResponse(data)

网址

urlpatterns = [
    ...
    path('car-details', views.get_car_data, name="car_data"),
    ...
]