If you ask yourself the question "What does my app do?" and you can't answer with a single sentence, then you need to split it up into parts.
Generally however you will want to keep the management interface and the public interface in the same "app" however you can namespace them separately.
-- questions/
|-- models.py # holds common models, imports models from backend/models.py
|-- admin.py # admin interface'
|-- frontend/
| |-- urls.py
| |-- views.py
| `-- ...
`-- backend/
|-- urls.py
|-- views.py
`-- models.py # holds specialist models. set Meta: app_label = 'questions.backend'
A guiding principle of Aspect Oriented Programming is separation of concerns. This means you should try to keep your modules as small and focused as possible. They should do one thing and one thing only. Remember, the root models.py can import any number of models from child modules and they will be picked up by django as part of the app, so don't feel the need to store them all in the same place.