Сохранение событий в полном календаре с помощью django
Я пытаюсь создать календарь, но не могу сохранить ни одно событие, которое хочу сохранить в sqlite db Я использую django и django reset framework Я думаю, что проблема в сериализаторе Вот данные запроса, это может помочь
.
<QueryDict: {'title': ['test'], 'start': ['1630627200000'], 'end': ['1630713600000'], 'url': ['test']}>
view.py
class SnippetSerializer(serializers.Serializer):
title = serializers.CharField(max_length=100)
url = serializers.URLField(required=False, allow_blank=True)
start = serializers.DateField(required=False)
end = serializers.DateField(required=False)
def create(self, validated_data):
return CalendarEvent.objects.create(**validated_data)
def update(self, instance, validated_data):
instance.title = validated_data.get('title',instance.title)
instance.url = validated_data.get('url',instance.url)
instance.start = validated_data.get('start',instance.start)
instance.end = validated_data.get('end',instance.end)
instance.save()
return instance
class addDateEvents(APIView):
authentication_classes = []
permission_classes = []
def post(self,request,**kwargs):
serializer = SnippetSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data,status=status.HTTP_201_CREATED)
return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)
js
$(document).ready(function() {
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay',
},
defaultDate: get_current_data(),
navLinks: true, // can click day/week names to navigate views
selectable: true,
selectHelper: true,
editable: true,
eventLimit: true, // allow "more" link when too many events
select: function(start, end) {
var title = prompt('Event Title:');
var url = prompt('Event Url')
var eventData;
$.ajax({
url : 'http://127.0.0.1:8000/api/add/event',
data :'title='+ title+'&start='+ start +'&end='+ end+'&url='+url,
type : 'POST',
success:function(json){
$('#calendar').fullCalendar('refetchEvents');
console.log('Event Added')
}
})
if (title) {
eventData = {
title: title,
url : url,
start: start,
end: end
};
$('#calendar').fullCalendar('renderEvent', eventData, true); // stick? = true
}
$('#calendar').fullCalendar('unselect');
},
events: [
{ groupId: 'testGroupId',
start: '2021-08-10T10:00:00',
end: '2021-08-10T16:00:00',
color: '#56baed',
}
],
});
});
function get_current_data(){
var today = new Date();
var day = String(today.getDate()).padStart(2,'0');
var month = String(today.getMonth()+1).padStart(2,'0');
var year = today.getFullYear();
today = year + '/' + month + '/' + day;
return today
}