Estratégia de aplicação do Django

14

Eu tenho trabalhado um tempo em um projeto Django que vem crescendo um pouco ultimamente. Estive pensando um pouco sobre qual estratégia usar para facilitar o manuseio. Uma coisa que eu gostaria de obter seria se eu dividisse meu aplicativo em vários aplicativos menores. Isso tornaria meus arquivos de visualização e modelo menores e separaria algumas das preocupações.

Uma coisa que me incomoda é que, em meus aplicativos, eu teria vários métodos auxiliares que serão usados ​​em todos os aplicativos. Além disso, alguns modelos também precisarão ser compartilhados / usados ​​entre aplicativos. Isso faria sentido? Isso não vai bem com a separação de preocupações que eu esperava alcançar dividindo meu aplicativo em vários aplicativos menores. Qual seria uma boa abordagem para compartilhar métodos auxiliares, modelos etc. entre aplicativos?

Mikael
fonte

Respostas:

11

Se o seu projeto estiver ficando grande, pense nos aplicativos como módulos reutilizáveis. Você pode separar a funcionalidade compartilhada entre seus aplicativos em seu próprio aplicativo.

Veja as discussões abaixo para mais reflexões sobre o assunto:

mortal
fonte
E se um aplicativo precisar adicionar alguns itens de menu à navegação do projeto? stackoverflow.com/questions/23405610
utapyngo
2

Eu gosto de criar um base/aplicativo sem visualizações e sem momentos para coisas compartilhadas.

Um problema que pode ocorrer quando você tem modelos espalhados por vários aplicativos é a importação circular. Isso pode ser evitado usando cadeias de caracteres para se referir a outros modelos (em foo = ForeignKey("someapp.Foo")vez de foo = ForeignKey(someapp.models.Foo)). O Django permite que você use strings como este em mais lugares.

Simon Pantzare
fonte