You won't be able to return a warning entry in a dict, because that style is intended to be used for onchange warnings. To solve it you have the following options:
1- Raise a Validation Exception like:
from odoo import exceptions
...
raise exceptions.ValidationError("Validation Message")
2- Create a wizard like form to show the message and return an action in the button to instruct Odoo to open that form from your wizard model.
return {
'type': 'ir.actions.act_window',
'res_model': model_name,
'view_type': 'form',
'view_mode': 'form',
'views': [(view_id, 'form')],
'target': 'new',
'res_id': self.id,
'context': dict(self._context),
}
You could pass the value for a field in the wizard using the context to display the needed message, just set a 'default_'+ field_name entry in the context with the value