business logic in Django
Having a java background I can relate with this question.
I have been working on python for quite some time.  Even though I do my best to treat Java as Java and Python as Python, some times I mix them both so that I can get a good deal out of both.
In short

Put all model related stuff in models app,  it could be from simply models definition to custom save , pre save hooks .....
Put any request/ response related stuff in views,  and some logic like verifying Jon schema, validation request body ... handling exceptions and so on ....
Put your business logic in separate folder/ app  or module per views directory/ app. Meaning have separate middle module between your models and views.

There isn't strict rule to organise your code as long as you are consistent. 
Project : Ci

Models: ci/model/device.py
Views: ci/views/list_device.py
Business logic:

(1) ci/business_logic/discover_device.py
Or
(2) ci/views/discover_device.py
I'd like to know where to put code that doesn't belong to a view, I mean, the logic.
I've been reading a few similar posts, but couldn't arrive to a conclusion.  
What I could understand is:

A View is like a controller, and lot of logic should not put in the controller.
Models should not have a lot of logic either.

So where is all the logic based stuff supposed to be? 
I'm coming from Groovy/Grails and for example if we need to access the DB or if we have a complex logic, we use services, and then those services are injected into the controllers.
Is it a good practice to have .py files containing things other than Views and Models in Django?  
PS: I've read that some people use a services.py, but then other people say this is a bad practice, so I'm a little confused...