on_delete=models.CASCADE по умолчанию. По сути, manytomanyfield просто за кулисами создает еще одну таблицу со связями ForeignKey на две таблицы, но никто не запрещает вам контролировать это вручную. Тогда обязательно укажите атрибут through в ManyToManyField:
class M2M(models.Model):
developer = models.ForeignKey('Developer', on_delete=models.CASCADE)
project = models.ForeignKey('Project', on_delete=models.CASCADE)
class Meta:
db_table = "m2m"