When the model is validated, the to_python of the charfield returns the value '0' which is not a valid choice key.
This trips up django.db.models.fields.Field.validate and causes any modelform for this model to fail submission (including in the admin).
see also:
https://code.djangoproject.com/ticket/20800
for why this took me more than a second to debug