根据下面代码,发送ajix请求,可以获取对应类别的数据 并写出相应的视图函数<select class="form-control" id="class_name" name="class_name"> <option value="">全部</option> {% for c in class_list %} <option value="{{ c }}">{{ c }}</option> {% endfor %} </select>
时间: 2023-06-16 20:05:34 浏览: 93
使用ajax取得数据
假设你的AJAX请求URL为 `/get_data_by_class/`,你可以编写以下视图函数来处理请求并返回数据:
```python
from django.http import JsonResponse
from django.views.decorators.http import require_GET
@require_GET
def get_data_by_class(request):
class_name = request.GET.get('class_name')
if class_name:
# 根据类别名称获取数据
data = YourModel.objects.filter(class_name=class_name).values()
else:
# 获取所有数据
data = YourModel.objects.all().values()
return JsonResponse({'data': list(data)})
```
在HTML模板中,你需要编写一个AJAX请求来获取数据,并将其显示在页面上。例如,你可以使用jQuery来编写AJAX请求:
```javascript
<script>
$(document).ready(function() {
$('#class_name').change(function() {
var class_name = $(this).val();
$.ajax({
url: '/get_data_by_class/',
data: {'class_name': class_name},
dataType: 'json',
success: function(response) {
// 在页面上显示数据
// response.data包含从服务器返回的数据列表
}
});
});
});
</script>
```
在这个例子中,我们给 `select` 元素添加了一个 `change` 事件,当选择列表中的一个选项时,它会发送一个AJAX请求到 `/get_data_by_class/` URL,并将选择的类别名称作为请求参数发送。服务器返回一个JSON响应,其中包含与所选类别匹配的数据。我们在AJAX响应成功时更新页面,将数据显示在页面上。
阅读全文