Я подключил полный календарь к своему проекту django, и теперь, когда я сохраняю события из представления месяца, все работает, но как только я переключаюсь на отображение дня или недели, события не сохраняются в базе данных.Однако ошибок нет.
скрипт полного календаря
<script>
$(document).ready(function() {
$('#calendar').fullCalendar({
dayClick: function(date, jsEvent, view) {
var clickDate = date.format();
$('#start-date').val(clickDate);
$('#dialog').dialog('open');
},
eventSources: [
{
events: [
{% for i in events %}
{
title: "{{ i.event_name}}",
start: '{{ i.start_date|date:"Y-m-d" }}',
end: '{{ i.end_date|date:"Y-m-d" }}',
},
{% endfor %}
],
}
]
});
//add new event
$( "#dialog" ).dialog({
autoOpen: false,
show: {
effect: 'drop',
duration: 500
},
hide: {
effect: 'clip',
duration: 500
}
});
$('.datepicker').datepicker({
dateFormat: 'yy-mm-dd'
});
});
</script>
views.py
def event(request):
all_events = Events.objects.all()
if request.method == 'POST':
event_form = ModelEventsForm(request.POST)
if event_form.is_valid():
update = event_form.save(commit=False)
update.owner = request.user.profile
update.start_date = event_form.cleaned_data['start_date']
update.save()
return redirect('events:event')
else:
event_form = ModelEventsForm()
context = {
"events": all_events,
'event_form': event_form
}
return render(request, 'profile/event_management.html', context)
models.py
class Events(models.Model):
owner = models.ForeignKey(Profile, blank=True, null=True, on_delete=models.CASCADE)
event_name = models.CharField(max_length=255)
start_date = models.DateTimeField(null=True)
end_date = models.DateTimeField(null=True)
event_type = models.CharField(max_length=10)
forms.py
class ModelEventsForm(forms.ModelForm):
class Meta:
model = Events
exclude = ['event_type', 'owner']
шаблон формы
<form method="post">
{% csrf_token %}
<div class="form-group">
<label for="event_name">Name</label>
{% render_field event_form.event_name class="form-control" id='event_name' %}
</div>
<div class="form-group">
<label for="start-date">НStart</label>
{% render_field event_form.start_date class="form-control datepicker" id='start-date' %}
</div>
<div class="form-group">
<label for="end-date">End</label>
{% render_field event_form.end_date class="form-control datepicker" id='end-date' %}
</div>
<button type="submit" class="btn btn-primary">New event</button>
</form>
Если создать событие на весь день, то в консоли я вижу, что дата 2018-12-12 00: 00: 00 + 03: 00. Если создать событие, которое содержит время, то данные не приходятна сервер.