Premessa doverosa: non sono un programmatore professionista, non conosco java e sono fermo alla versione 2.2 di django.
Quello che proprio non riesco a capire è il motivo avere un file per ogni modello. Vedo solo lo svantaggio di avere il moltiplicarsi un po’ dappertutto dei vari import, che tra l’altro dovrebbero poi essere richiamati in un ordine prestabilito.
Invece che avere un file per ogni modello, suddividerei il progetto in app, ma solo se fosse possibile individuare parti funzionali separabili.
Per le views invece il discorso cambia. Lì ha senso sviluppare in maniera modulare. Personalmente creo un file per ogni view.
La cartella templates si trova di default allo stesso livello di models e views, puoi strutturarla come più ti aggrada ed agendo su settings puoi spostarla dove ti è più comodo.