Étant donné que vous utilisez render() raccourci dans contrib.views, vous Il suffit de charger le modèle à partir de l'application principale et assurez-vous que le contexte var satisfait ce que le modèle principal rend. Si vous fournissez le chemin comme « coreapp/template.html » le get_context() Modèle Loader Backend trouverez trouver le modèle correct étant donné qu'il est correctement configuré:
settings.py: Set APP_DIRS=True
dans le dictionnaire TEMPLATE
. Django recherchera des modèles dans chaque application via les fonctions get_template() et select_template().
contrib.views.py
from django.http import HttpResponse
from django.template import loader
def index(request):
...
template = loader.get_template('coreapp/template.html')
context = {
'core_template_var': core_template_var,
...
}
return HttpResponse(template.render(context, request))
Lectures Recommandées:
render(): https://docs.djangoproject.com/en/1.11/topics/http/shortcuts/#render
chargement du modèle: https://docs.djangoproject.com/en/1.11/topics/templates/#template-loading
Note: Que vous pouvez également utiliser un modèle de repli avec select_template() au lieu de get_template(). select_template() prend une liste et essaie tour à tour chaque chemin du template, en retournant le premier qui existe.
Il ne devrait pas y avoir de problème ici: les modèles ne "appartiennent" pas aux applications d'une manière autre que d'être dans leurs répertoires de fichiers. –