во-первых, извините за мой плохой английский, я очень избыточен с моими объяснениями, потому что я новичок в этом языке программирования и этом сообществе.
Итак, начнем, я смонтировал всю структуру дляполный календарь, и я использую модальное всплывающее окно, когда я нажимаю на пустое место в дате, чтобы добавить новое событие, и отлично работает, добавляя события в мою модель и рендеринг в JSON, реальный вопрос: как я могу сделать, чтобы обновитьсуществующее событие, когда я нажимаю на него ?, вот мой код:
мой views.py
from django.shortcuts import render, redirect
from django.http import HttpResponse, JsonResponse
from apps.calendarDCC.forms import EventForm
from apps.calendarDCC.models import EventsCalendar
import json
def show_calendar(request):
return render(request, 'calenar/events_fullcalendar.html')#to show the calendar
def json_events(request):
events = EventsCalendar.objects.all().values('id', 'title', 'description', 'start', 'end', 'className', 'editable', 'allDay', 'customer').order_by('id')
events_list = list(events)
return JsonResponse(events_list, safe=False)#render my events in JSON
def modal_addevent(request): #use 'Eventform' in a modal to add events
if request.method == 'POST':
form = EventForm(request.POST)
if form.is_valid():
form.save()
return redirect('events_calendar')
else:
form = EventForm()
return render(request, 'events/events_calendar.html', {'form':form})
мой шаблон в HTML
{% extends 'base/base.html' %}
{% block content %}
<div class="container">
<div class="col" id= "calendar">
<script>
$(function() {
$('#calendar').fullCalendar({
schedulerLicenseKey: 'GPL-My-Project-Is-Open-Source',
locale: 'en',
//timezone: 'local',
themeSystem: 'bootstrap4',
handleWindowResize: true,
header: {
left: 'prevYear,prev,next,nextYear, today',
center: 'title',
right: 'month,agendaWeek,agendaDay,list'
},
events: '/calendar/json/events', #the url with JSON coded events
editable: true,
navLinks: true,
nowIndicator: true,
weekNumbers: true,
eventLimit: true,
selectable: true,
displayEventTime: true,
dayClick:function(date,jsevent,view){
$("#ModalAddEvents").modal(); // calls the modal to add events with ‘EventForm’
},
eventClick:function(calEvent,jsEvent,view){
// here is where I need help, how to edit an existing event and save to my model?
},
});
});
</script>
</div>
</div>
<div>
<!--modal(Add events to the calendar)-->
<div class="modal fade" id="ModalAddEvents" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Add a new event!</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<br/>
<div></div>
<button type="button submit" class="btn btn-success" href="{{ 'events_calendar' }}">Save</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
</form>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
{% endblock content %}
Я попробовал всечто я думаю, чтобы сделать это, но без какого-либо ответа и после двух недель неудовлетворительных усилий я решил разместить здесь вопрос, пожалуйста, покажите мне путь!и будьте нежны с этим новичком, дайте мне знать, если я напутаю с этим вопросом.
Спасибо.