Jeff's right, I want to edit all fields in the full edit form, and use the defaults only in a quick add form.
I generalized the code I showed above to a fill_missing_fields function. Now the only remaining problem I see is that it has to be called before validation and html2python. It would be neater to have validation bypass missing fields with default values and have them filled in after html2python.