[#78806122] Return 400 on module validation error

At the moment we fail with a 500 for what should be a 400.

This change required blank=True to be set on a few models. The 'null'
argument only applies to whether the database field can be null. The
'blank' argument applies to the validation.
Stray `print()` here. Also, could this module have a slug that makes it more obvious that that's what's failing validation?