couldn't you `get_or_create` to avoid an IntegrityError?