目標:djangoクラスベースのビューからindex.htmlファイルにオブジェクトの配列を送信するにはどうすればいいですか?
私は、データベースからイベントオブジェクトを表示するためにFullCalendar(https://fullcalendar.io/)を使用します。 FullCalendarはイベントオブジェクトの配列をプロパティとして受け取ります。
私がいる問題:
を、私は私の知る限り、私は唯一のDjangoのテンプレートタグシステムを使用して、データと対話することができます知っているようにイベントオブジェクトをバックテンプレートにコンテキストデータを送ることができますが。 *編集:私はptoHistoryでハードコードされ、配列を交換するとき、私はクロームコンソールで次のエラーが表示されます。
jquery-3.1.1.min.js:2 Uncaught ReferenceError: ptoHistory is not defined at HTMLDocument. ((index):141) at j (jquery-3.1.1.min.js:2) at k (jquery-3.1.1.min.js:2)
のindex.html:
{% extends 'base.html' %}
{% block content %}
//ACCESSING THE CONTEXT DATA LIKE THIS WORKS BUT I CAN'T USE ptoHistory IN MY FULLCALLENDAR SCRIPT
{% for history in ptoHistory %}
<li>{{obj.leave_type}}</li>
{% endfor %}
<div class="container">
<div id="calendar">
<!-- Calendar is injected here -->
</div>
<!----------------------- SCRIPTS ----------------------------->
<script>
$(document).ready(function() {
$('#calendar').fullCalendar({
defaultView:'month',
editable: true,
// MY ARRAY OF OBJECTS WILL REPLACE THIS HARDCODED ARRAY
events: [
{
title: 'All Day Event',
start: '2017-01-12',
},
{
title: 'Meeting',
start: '2017-01-13T10:30:26',
end: '2014-06-13T12:30:00'
},
],
});
});
</script>
{% endblock content%}
IndexView.py:
class IndexView(FormView):
template_name = 'accounts/index.html'
form_class = PtoRequestForm
success_url = 'login/'
def form_valid(self, form):
form.save()
return super(IndexView, self).form_valid(form)
def get_context_data(self, **kwargs):
context = super(IndexView, self).get_context_data(**kwargs)
context['ptoHistory'] = PtoHistory.objects.all()
print(context['ptoHistory'])
return context
誰かが私を正しい方向に向けることができますか?
問題がどこにあるのかわかりません。あなたはすでにデータをビューに正しく渡していますが、他に何を求めていますか? – dabadaba
@dabadaba質問を更新しました。 "私が抱えている問題"を再読してください。 – FlashBanistan
基本的には、スクリプトのビューから送信されたデータを使用したいのですか? JSがどのようにデータを見ているかを見て、Django側かJS側のどちらかで正しく設定して、カレンダープラグインが期待するものと一致させることができます。私は前と同じシナリオに遭遇しました。あなたのスクリプトではなく、ビューでデータをフォーマットして構築することをお勧めします。 – dabadaba