'Restriction of "authorized fields" (fields which can be used in the
form builders) to fields which have actually been opted into form
builders and are writable. By default no field is writable by the
form builder.'

def _get_form_writable_fields(self):

    included = {field.name for field in self.env['ir.model.fields'].sudo().search([('model_id', '=', self.id), ('website_form_blacklisted', '=', False)])}
    return {k: v for (k, v) in self.get_authorized_fields().iteritems() if (k in included)}
