Pergunta

Digamos que eu tenho 3 aplicativos de django, aplicativos País, aplicativo Social e app Financeiro.

O país é um aplicativo de 'navegação mestre'. Ele lista todos os países em uma visão de 'índice' e mostra detalhes para cada país em sua visão 'detalhes'.

Os detalhes de cada país incluem seus detalhes sociais (do aplicativo social) e seus detalhes financeiros (do aplicativo financeiro).

Social e financeiro têm uma visão detalhada (para cada país)

Existe uma maneira elegante de "plugue" nessas vistas de sub-detalhes na visão de detalhes mestre fornecida pelos países? Portanto, para cada página de detalhes do país, eu veria 2 guias mostrando os detalhes sociais e financeiros para esse país.

Foi útil?

Solução

2 Solução comum que eu uso para este problema:

Modelos parciais:
Crie um modelo para renderizar "social" e "financeiro" que não precisa de coisas da visão, exceto o objeto em que está funcionando (e usa as funções de objetos ou tags de modelo para renderizá -lo). Em seguida, você pode facilmente { % incluir %} it (e definir a variável necessária primeiro).
Essa visualização parcial não renderiza uma página HTML completa, mas apenas uma única div ou algum outro elemento HTML que você deseja usar. Se você também precisar de uma página "somente social", poderá criar uma página que renderize o cabeçalho e inclua o modelo parcial. Você pode usar uma convenção como _template.html para o modelo parcial e modelo.html para o modelo regular.

Ajax:
Faça com que suas visualizações "sociais" e "financeiras" cientes de serem chamadas no xmlHttPrequest (request.is_ajax ()). Se forem, retornam apenas um elemento div, sem todo o HTML ao seu redor. Dessa forma, sua página mestre pode renderizar sem ela e adicionar esse conteúdo em tempo real.
O Ajax Way tem várias vantagens: você não renderiza as visualizações do plug -in na mesma solicitação que a página inteira, por isso as visualizações relevantes do plug -in solicitando.
Além disso, você pode usar a visualização normal para gerar dados necessários no modelo (o que você realmente não pode fazer no método de modelos parciais).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top