I agree it's awful. The problem is, in our existing API, that's how we do stuff : serialize to URL, deserialize from slug/pk. Maybe @washort bumped into this issue and has something better to propose ?