How to handle non model variable

Not in cleaned_data, no. It’s the is_valid call that causes that dict to be populated.

If you want to access the field before the form is cleaned, you’d need to either refer directly to the entry in the request.POST object, or the field in the form after it has been bound. (Or, you can override the clean_<fieldname> method itself to get the value as it’s being cleaned.)