Cómo publicar y actualizar usando Django

Tengo estos dos modelos:

class Lecture(models.Model):
    lecture_no = models.IntegerField(null=True)
    title = models.CharField(max_length=128, unique=True, null=True)
    youtubeLink = models.CharField(max_length=128, unique=True, null=True)
    course = models.ForeignKey(Course, null=True)
    keywords = models.TextField(max_length=300, null=True)
    #Could add Next Rerun Date & Time

    def __str__(self):
        return self.title

class Notes(models.Model):
    notes = models.TextField(null=True)
    lecture = models.ForeignKey(Lecture, null=True)

    def __str__(self):
        return str(self.notes)

Estoy tratando de hacerlo para poder crear nuevas notas y actualizar las notas existentes para conferencias específicas desde la página de la Conferencia.

Tengo estas opiniones:

class LectureViewSet(viewsets.ModelViewSet):
    serializer_class = LectureSerializer

    # Queries the data to find the right lectures for a given course

    def get_queryset(self):
        course_id = self.request.query_params.get('course', False)
        if course_id:
            lectures = Lecture.objects.filter(course=course_id)
        else:
            lectures = Lecture.objects.all()
        return lectures

    @detail_route(methods=['post'])
    def set_notes(self, request, pk=None):
        lecture = self.get_object()
        serializer = NotesSerializer(data=request.data)
        if serializer.is_valid():
            lecture.set_notes(serializer.data['notes'])
            lecture.save()
            return Response({'status': 'notes saved'})
        else:
            return Response(serializer.errors,
                            status="Error.")

class NotesViewSet(viewsets.ModelViewSet):
    queryset = Notes.objects.all()
    serializer_class = NotesSerializer

    def get_queryset(self):
        lecture_id = self.request.query_params.get('lecture', False)
        if lecture_id:
            notes = Notes.objects.filter(lecture=lecture_id)
        else:
            notes = Notes.objects.all()
        return notes

Lo que estoy usando para tratar de permitir que se publiquen nuevas notas, sin embargo, parecen responder constantemente con error:

conferencia: {título: ["La conferencia con este título ya existe"]}

Lo que me lleva a creer que está tratando de publicar nuevas Notas en lugar de actualizar la existente. También estoy confundido sobre por qué está produciendo este error en lugar de simplemente agregar otro objeto de Notes a la base de datos porque si Lecture es una ForeignKey of Notes, ¿eso no implica una relación de muchos a uno?

EDITAR: He actualizado mis serializadores para incluir métodos de creación y actualización:

def create(self, validated_data):
    notes = Notes.objects.create(**validated_data)
    return notes

def update(self, instance, validated_data):
    instance.notes = validated_data.get('notes', instance.notes)
    return instance

Pero aún recibo este error:

No se puede asignar "OrderedDict ([('lecture_no', 1), ('title'," Lecture Title, ('youtubeLink', 'Link1'), ('course',), ('keywords', 'Estas palabras clave'. )]) ":" Notes.lecture "debe ser una instancia de" Lecture ".

Respuestas a la pregunta(0)

Su respuesta a la pregunta