无法在 Fullcalendar Django 中添加事件
cannot add event in Fullcalendar Django
我无法将活动添加到全日历。 index.html 中的 add_event 和 urls.py 中的 add_event 似乎没有连接。我不知道如何将它们连接起来。每次我在 index.html 中插入数据时,保存在数据库中的数据总是空的,但它以某种方式保存了下来。请帮我。我已经尝试了很多东西,但它仍然不起作用。
index.html
<!DOCTYPE html>
<html>
<head>
<title>カレンダーサンプル</title>
<link rel="stylesheet" href="{% static 'fullcalendar/calendar/css/fullcalendar.min.css' %}"/>
<link rel="stylesheet" href="{% static 'fullcalendar/calendar/css/style.css' %}">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="{% static 'fullcalendar/calendar/js/moment.min.js' %}"></script>
<script type="text/javascript" src="{% static 'fullcalendar/calendar/js/fullcalendar.min.js' %}"></script>
<script type="text/javascript" src="{% static 'fullcalendar/calendar/lang/ja.js' %}"></script>
<script>
// ページ読み込み時の処理
$(document).ready(function () {
// カレンダーの設定
$('#calendar').fullCalendar({
height: 550,
lang: "ja",
header: {
left: 'prev,next today',
center: 'title',
right: 'month,basicWeek,basicDay'
},
events: [
{% for event in events %}
{
title: "{{ event.title}}",
start: '{{ event.start|date:"Y-m-d" }}',
end: '{{ event.end|date:"Y-m-d" }}',
id: '{{ event.id }}',
},
{% endfor %}
],
timeFormat: 'HH:mm',
selectable: true,
selectHelper: true,
navLinks: true,
// eventSources: [{
// url: '/fullcalendar/calendar',
// dataType: 'json',
// async: false,
// type : 'GET',
// error: function() {
// $('#script-warning').show();
// }
// }],
select: function(start, end, resource) {
var title = prompt("予定タイトル:");
var eventData;
if (title) {
eventData = {
title: title,
start: start,
end: end,
allDay: true,
csrfmiddlewaretoken:$('input[title=csrfmiddlewaretoken]').val()
};
$('#calendar').fullCalendar('renderEvent', eventData, true);
$.ajax({
url: '/fullcalendar/add_event',
type: "GET",
data: JSON.stringify(eventData),
success: function(jsonResponse) {
alert("予定を登録しました。")
},
error: function(jsonResponse) {
alert("cannot insert!")
}
});
}
$('#calendar').fullCalendar('unselect');
},
editable: true,
eventLimit: true,
});
});
</script>
</head>
<body>
<div id='calendar'></div>
</body>
</html>
urls.py
def add_event(request):
title = request.GET.get("title", None)
start = request.GET.get("start", None)
end = request.GET.get("end", None)
# event = Events(title=str(title), start=start, end=end)
event = Events.objects.create(
title = title,
start = timezone.now(),
end = timezone.now()
)
event.save()
data = {}
你应该改变
data: JSON.stringify(eventData)
到
data: eventData
您已将发送数据转换为 JSON 字符串,但看起来您的后端代码需要单独的参数 - jQuery 将为您编码,如果您只是传递原始数据Javascript 对象变成 data
.
我无法将活动添加到全日历。 index.html 中的 add_event 和 urls.py 中的 add_event 似乎没有连接。我不知道如何将它们连接起来。每次我在 index.html 中插入数据时,保存在数据库中的数据总是空的,但它以某种方式保存了下来。请帮我。我已经尝试了很多东西,但它仍然不起作用。
index.html
<!DOCTYPE html>
<html>
<head>
<title>カレンダーサンプル</title>
<link rel="stylesheet" href="{% static 'fullcalendar/calendar/css/fullcalendar.min.css' %}"/>
<link rel="stylesheet" href="{% static 'fullcalendar/calendar/css/style.css' %}">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="{% static 'fullcalendar/calendar/js/moment.min.js' %}"></script>
<script type="text/javascript" src="{% static 'fullcalendar/calendar/js/fullcalendar.min.js' %}"></script>
<script type="text/javascript" src="{% static 'fullcalendar/calendar/lang/ja.js' %}"></script>
<script>
// ページ読み込み時の処理
$(document).ready(function () {
// カレンダーの設定
$('#calendar').fullCalendar({
height: 550,
lang: "ja",
header: {
left: 'prev,next today',
center: 'title',
right: 'month,basicWeek,basicDay'
},
events: [
{% for event in events %}
{
title: "{{ event.title}}",
start: '{{ event.start|date:"Y-m-d" }}',
end: '{{ event.end|date:"Y-m-d" }}',
id: '{{ event.id }}',
},
{% endfor %}
],
timeFormat: 'HH:mm',
selectable: true,
selectHelper: true,
navLinks: true,
// eventSources: [{
// url: '/fullcalendar/calendar',
// dataType: 'json',
// async: false,
// type : 'GET',
// error: function() {
// $('#script-warning').show();
// }
// }],
select: function(start, end, resource) {
var title = prompt("予定タイトル:");
var eventData;
if (title) {
eventData = {
title: title,
start: start,
end: end,
allDay: true,
csrfmiddlewaretoken:$('input[title=csrfmiddlewaretoken]').val()
};
$('#calendar').fullCalendar('renderEvent', eventData, true);
$.ajax({
url: '/fullcalendar/add_event',
type: "GET",
data: JSON.stringify(eventData),
success: function(jsonResponse) {
alert("予定を登録しました。")
},
error: function(jsonResponse) {
alert("cannot insert!")
}
});
}
$('#calendar').fullCalendar('unselect');
},
editable: true,
eventLimit: true,
});
});
</script>
</head>
<body>
<div id='calendar'></div>
</body>
</html>
urls.py
def add_event(request):
title = request.GET.get("title", None)
start = request.GET.get("start", None)
end = request.GET.get("end", None)
# event = Events(title=str(title), start=start, end=end)
event = Events.objects.create(
title = title,
start = timezone.now(),
end = timezone.now()
)
event.save()
data = {}
你应该改变
data: JSON.stringify(eventData)
到
data: eventData
您已将发送数据转换为 JSON 字符串,但看起来您的后端代码需要单独的参数 - jQuery 将为您编码,如果您只是传递原始数据Javascript 对象变成 data
.