Hi David,
If removing get_v is fixing the issue, then actually the issue lies in the check table implementation. Did you put a breakpoint there and see what's happening?
Where you generate the field is more of an implementation decision, but technically the field should get persisted, unless your get_v logic is such that it needs to be part of the customer object.
Regards,
Parul