django-overextends é um app reutilizável Django proporcionando a tag template overextends, uma substituição drop-in para Django do estende tag, que lhe permite usar a herança modelo circular.
O caso de uso primário para overextends é substituir simultaneamente e estender modelos de outros aplicativos reutilizáveis, em seu próprio projeto Django.
Exemplo
Considere o seguinte módulo e modelos de configurações, com o app1 apps e app2 incluído no projeto, pelo amor de exemplo:
# Settings.py
INSTALLED_APPS = (
& Nbsp; "app1",
& Nbsp; "app2",
& Nbsp; "overextends",
)
TEMPLATE_LOADERS = (
& Nbsp; "django.template.loaders.filesystem.Loader",
& Nbsp; "django.template.loaders.app_directories.Loader",
)
PROJECT_ROOT = os.path.dirname (os.path.abspath (__ file__))
TEMPLATE_DIRS = (os.path.join (PROJECT_ROOT, "modelos"),)
Título
{% Block principal%}
Um parágrafo em app1
{% Em bloco%}
{% Overextends "pages / page.html"%}
{% Block principal%}
Um parágrafo em app2, que quer estar no topo do bloco principal de app1
{{}} Block.super
{% Em bloco%}
{% Overextends "pages / page.html"%}
{% Block principal%}
{{}} Block.super
Um parágrafo no diretório de modelo do projeto, de acordo com os outros blocos principais
{% Em bloco%}
O HTML resultante rendido quando pages / page.html foi carregado seria:
Título
Um parágrafo em app2, que quer estar no topo do bloco principal de app1
Um parágrafo em app1
Um parágrafo no diretório de modelo do projeto, de acordo com os outros blocos principais
Copyright 2012
Para uma análise detalhada de por que você iria usar essa abordagem, como funciona, e abordagens alternativas, leia o meu post inicial: Herança Template Circular para Django.
Instalação
A maneira mais fácil de instalar o Django-overextends é diretamente do PyPI usando pip, executando o seguinte comando:
& Nbsp; pip instalar -U django-overextends
Caso contrário, você pode baixar django-overextends e instalá-lo diretamente da fonte:
& Nbsp; python setup.py instalar
Configuração do projeto
Uma vez instalado, você pode configurar seu projeto para usar o Django-overextends adicionando o app overextends ao INSTALLED_APPS no módulo configurações do seu projeto:
INSTALLED_APPS = (
& Nbsp; # ... outros aplicativos aqui ...
& Nbsp; "overextends ',
)
Note-se que enquanto a estende tag é fornecida pelos overextends.templatetags.overextends_tags pacote, não é necessário usar {% load overextends_tags%} em seus modelos. Como o estende tag, overextends deve ser a primeira tag em seu modelo, então ele é automaticamente adicionado ao Django embutido do template tags, removendo a necessidade de carregar a sua biblioteca de tags em cada modelo.
Requisitos :
- Python
- Django
Comentários não encontrado