So it turns out I was just way overcomplicating this entire idea. In the end I just created my own custom model field that did all of what I was trying to do above. For this specific situation I took the built-in UUID field that Django already provides and extended it with ULID verification and appending/removing the table prefix when going from Python to the DB and back.