Charlton's Tayo Edun was sent off despite being the victim of a reckless lunge by Northampton defender Aaron McGowan.