从Ajax GET方法接收数据后,使用Django Listview类重新加载页面
我使用一个js日历选择器插件将日期值传递给django视图,并根据它应该在同一网页上呈现新视图的日期。因为在这个视图中,我从不同的表中提取了大量的数据,所以我使用ListView类 问题是,当我在listview中使用get函数时,我能够捕获从ajax传递的数据。如何传递该数据以获取上下文数据以重新生成上下文并重新加载页面 Thx 这是我的js:从Ajax GET方法接收数据后,使用Django Listview类重新加载页面,ajax,django,get,django-views,Ajax,Django,Get,Django Views,我使用一个js日历选择器插件将日期值传递给django视图,并根据它应该在同一网页上呈现新视图的日期。因为在这个视图中,我从不同的表中提取了大量的数据,所以我使用ListView类 问题是,当我在listview中使用get函数时,我能够捕获从ajax传递的数据。如何传递该数据以获取上下文数据以重新生成上下文并重新加载页面 Thx 这是我的js: <script type="text/javascript"> $(function() { va
<script type="text/javascript">
$(function() {
var start = moment().subtract(29, 'days');
var end = moment();
function cb(start, end) {
$('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
$.ajax({
type: 'GET',
url: "/csr/summary/",
data: {
csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val(),
from_date: from_date,
to_date: to_date,
},
success: function (response) {
}
});
console.log("done here");
}
$('#reportrange').daterangepicker({
startDate: start,
endDate: end,
ranges: {
'Today': [moment(), moment()],
'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
'Last 7 Days': [moment().subtract(6, 'days'), moment()],
}
}, cb);
cb(start, end);
});
</script>
当您从get方法调用super时,应该根据super类的super方法调用get_context_数据方法 检查下面的url,您将在get方法的最后一个部分中看到
context=self.get\u context\u data()
当您从get方法调用super时,应该根据super类的super方法调用get\u context\u数据方法 检查下面的url,您将在get方法的最后一个部分中看到
context=self.get\u context\u data()
明白了,现在我也可以在get_context_data中获取数据,但是如何用新数据重新加载页面?Thx为什么要重新加载页面?我认为,如果要显示类似分页的数据,应该使用js追加数据。我没有为此使用分页。这应该是一个简单的get方法。但是因为我在js中使用了这个日历插件,所以我必须使用js创建一个get请求,这个请求必须将数据传递到django视图并重新加载页面。我对js和ajax非常陌生,所以我想知道最好的方法是什么。明白了,现在我也可以在get_context_data中获取数据,但是如何用新数据重新加载页面?Thx为什么要重新加载页面?我认为,如果要显示类似分页的数据,应该使用js追加数据。我没有为此使用分页。这应该是一个简单的get方法。但是因为我在js中使用了这个日历插件,所以我必须使用js创建一个get请求,这个请求必须将数据传递到django视图并重新加载页面。我对js和ajax非常陌生,所以我想知道最好的方法是什么。在GET请求中使用CSRF做什么?在GET请求中使用CSRF做什么?
class CsrView(generic.ListView):
template_name = 'dash/csr.html'
context_object_name = 'csr_list'
from_date = ""
to_date = ""
def get(self, request, *args, **kwargs):
self.from_date = self.request.GET.get("from_date", "")
self.to_date = self.request.GET.get("to_date", "")
print "Django get method getting:", self.from_date, " - ", self.to_date
return super(CsrView, self).get(request, *args, **kwargs)
def get_context_data(self, **kwargs):
context = super(CsrView, self).get_context_data(**kwargs)
# if self.request.method == "GET":
# print "get method triggered"
# self.from_date = self.request.GET.get("from_date", "")
# self.to_date = self.request.GET.get("to_date", "")
# context['testing'] = "lalala" + self.from_date
context['title'] = "CSR"
context['other_stuff'] = .....