J'ai essayé de comprendre quelle est la meilleure façon de faire de l'Ajax dans Django. En lisant des trucs ici et là, j'ai compris que le processus commun est:
formuler votre appel Ajax à l'aide de certains JavaScript bibliothèque (par exemple, jQuery), mettre en place un modèle d'URL dans Django qui intercepte l'appel et le passe à une fonction de visualisation
dans le Python de la fonction de visualisation de récupérer les objets qui vous intéressent et de les envoyer au client au format JSON ou similaire (en utilisant le construit en sérialiseur module, ou simplejson)
définir une fonction de rappel en JavaScript qui reçoit les données JSON et l'analyse, afin de créer n'importe quel HTML est nécessaire pour être affiché. Enfin, le script JavaScript met le code HTML où il doit le rester.
Maintenant, ce que je ne comprends toujours pas est comment sont les modèles Django liées à tout cela? Apparemment, nous ne faisons pas parti de la puissance de modèles à tous. Idéalement, j'ai pensé qu'il serait bien de passer de nouveau un objet JSON et un nom de modèle, de sorte que les données pourraient être itéré et un bloc HTML est créé. Mais peut-être que je suis totalement faux...
La seule ressource que j'ai trouvé qui va dans ce sens est de cet extrait (769) mais je n'ai pas encore essayé. Évidemment, ce qui va se passer dans ce cas, c'est que tous le HTML résultant est créé sur le serveur de l'autre côté, puis transmis au client. Le JavaScript-fonction de rappel n'a qu'à afficher dans le bon endroit.
Est-ce à cause des problèmes de performance? Sinon, même sans l'aide de l'extrait ci-dessus, pourquoi pas la mise en forme du code HTML directement dans le backend à l'aide de Python à la place du front-end?
Merci beaucoup!
Mise à JOUR: veuillez utiliser l'extrait de code 942 parce que c'est une version améliorée de celle ci-dessus! J'ai trouvé que l'héritage de soutien fonctionne beaucoup mieux de cette façon..