Comment insérer un modèle dans un autre modèle?

J’ai un modèle très simple (basic_template.html), et je souhaite remplir le formulaire avec des données formatées en utilisant un autre modèle partiel. Le fichier basic_template.html peut contenir plusieurs éléments formatés à l’aide du modèle partiel.

Comment devrais-je structurer le code dans views.py?

La raison pour laquelle je le fais est que plus tard le sera utilisé avec Ajax. Est-ce que je fais ça correctement?

Tu peux faire:

{% include "main/includes/subtemplate.html" %}

subtemplate.html est un autre modèle Django. Dans ce subtemplate.html vous pouvez mettre le HTML qui serait obtenu avec Ajax.

Vous pouvez également inclure le modèle plusieurs fois:

 
{% for item in items %} {% include "main/includes/subtemplate.html" %} {% endfor %}

Vous pouvez le faire en utilisant un bloc. Les blocs sont une balise de modèle Django qui remplacera les sections d’un modèle que vous étendez. J’ai inclus un exemple ci-dessous.

basic_template.html

  {% block 'body' %} {% endblock %}  

modèle que vous souhaitez inclure: (exemple.html)

 {% extends 'basic_template.html' %} {% block 'body' %} /* HTML goes here */ {% endblock %} 

views.py :

 return render_to_response(template='example.html', context, context_instance) 

Cette opération chargera basic_template.html , mais remplacera tout ce qui se trouve dans {% block 'body' %} {% endblock %} dans basic_template.html par tout ce qui est contenu dans {% block 'body' %} {% endblock %} .

Vous pouvez en savoir plus sur les blocs et l’inheritance des modèles dans la documentation de Django

Je voulais juste append des différences d’extension et d’inclusion. Les deux modèles et l’inclusion peuvent utiliser des modèles insérés dans l’application actuelle. Le modèle est destiné à une utilisation globale par votre application. Include est à utiliser dans certaines applications. Par exemple: vous voulez insérer Image Slider sur votre page d’accueil et sur la page, mais nulle part ailleurs. Vous pouvez créer une application Slider avec son propre modèle pour plus de commodité et importer son modèle et l’inclure dans ces pages. Si vous avez utilisé template pour cet exemple, vous créeriez 2 templates un avec slider et tout autre modèle.