【发布时间】:2012-04-25 19:33:47
【问题描述】:
我的django 应用程序的index.html 页面使用jquery fullcalendar,由名为index() 的django 视图填充,该视图使用simplejson 转储包含当前月份所有日期的事件的数组。该方法呈现index.html模板。
我在点击日历的prev button 时调用ajax get 调用另一个django 视图prev_month()。此方法计算上个月的事件数组并将其转储并最终呈现不同的模板'prev_month.html'
def prev_month(request,year,month):
....
prev_events=[]
#populates array by making db calls
return render_to_response('prev_month.html',{'prev_events':prev_events})
prev_month.html
...
<script>
$(document).ready(function() {
$('#calendar').fullCalendar({
events: {{prev_events|safe}}
});
$('.fc-button-prev').click(function(){
var d=$('#calendar').fullCalendar('getDate');
var month=d.getMonth()+1;
var year=d.getFullYear();
$.ajax({url:'/myapp/prev_month/'+year+'/'+month,type:"GET",
success:function(){
alert('prev_month.html::success');
},
});
});
</script>
模板index.html与上面的模板类似,除了成功警报显示'index.html::success'。它还使用名为index()的django视图传递的current_events填充日历。
django 视图是
def index(request):
...
#creates events array and jsondump
return render_to_response('index.html',{'current_events':events_array})
当我进入索引页面时,日历显示当月的所有事件。当点击 prev 按钮时,django 视图 prev_month() 被执行。但由于某种原因,呈现的模板是index.html的prev_month.html 。这从显示index.html::success 的成功警报中可以看出
而不是prev_month.html::success
因此,上个月的事件不显示..
谁能帮我弄清楚为什么会这样?
【问题讨论】:
标签: jquery ajax django templates