私django
のアプリのindex.html
ページはjqueryfullcalendarを使用しており、このビューが呼び出され、現在の月のすべての日のイベントを含む配列をダンプするためindex()
に使用されます。このメソッドはテンプレートをレンダリングします。simplejson
index.html
ajax get
カレンダーをクリックすると、prev button
別の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
は、成功アラートが表示されることを除いて、上記のテンプレートと似ています。また、という名前のdjangoビューによって渡されたもの'index.html::success'
を使用してカレンダーにデータを入力します。current_events
index()
ジャンゴビューは
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
このため、前月のイベントは表示されません。
誰かが私がこれが起こる理由を理解するのを手伝ってもらえますか?