Django calling REST API from models or views?
What is the most logical place from where to call external web services: from a model method or from a view?

Ideally your models should only talk to database and have no clue what's happening with your business logic. 

Should I put the code that call the remote API in external modules that will be then called by the views?

If you need to access them from multiple modules, then yes, placing them in a module makes sense. That way you can reuse them efficiently.

Is it possible to conditionally select the data source? Meaning presenting the data from the REST API or the local models depending on their "freshness"?

Of course it's possible. You can just implement how you fetch your data on request. But the more efficient way might just be avoiding that logic and just sync your local data with remote data and show the local data on the views.
I have to call external REST APIs from Django. The external data source schemas resemble my Django models. I'm supposed to keep the remote data and local ones in sync (maybe not relevant for the question)
Questions: 

What is the most logical place from where to call external web services: from a model method or from a view?
Should I put the code that call the remote API in external modules that will be then called by the views?
Is it possible to conditionally select the data source? Meaning presenting the data from the REST API or the local models depending on their "freshness"?

Thanks
EDIT: for the people willing to close this question: I've broken down the question in three simple questions from the beginning and I've received good answers so far, thanks.