> given that pk is an autoincrement field by default.

The reason for this generally is so that you can use user_id as your primary key; it thus needs to be deterministic and therefore pk needs to be passed in.

> create a model which has required fields without defaults

You have that problem anyway; I'm not sure it's a concern of cache_toolbox.

(Agree with all the rest)