Сохранение событий в полном календаре с помощью 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 
}
Вернуться на верх