No hardcode pk

Consistently use .get_pk_name instead of hardcoded ‘pk’ string.

Note: Please make sure this is correct! I haven't been able to figure out how to write meaningful tests.