2016-08-08 13 views
1

Ich bin sehr neu django und Ajax, ich versuche, die folgendes zu tun:Erste Datenbank Informationen für eine django Vorlage mit Ajax

  • In meinem html habe ich ein paar „wählen Sie“ Elemente, und für jedes "select" gibt es einen Button namens "view".

  • Wenn ich auf "Ansicht" klicke, möchte ich Datenbankinformationen abhängig von der Option abrufen, die in der "Auswahl" entsprechend der angeklickten "Ansicht" ausgewählt wurde. Dies sollte von Ajax getan werden, und ich möchte einige der Datenbankinformationen im HTML anzeigen (ohne die Seite offensichtlich zu aktualisieren).

Ich verstehe, ich sollte ein OnClick-Ereignis zu den Schaltflächen hinzufügen und dort die gewählte Option Info über Ajax senden, was ich bin verwirrt ist folgende:

  • In einem solchen Szenario, sollte ich GET oder POST verwenden? Und warum?

  • Welche URL kontaktiere ich mit AJAX? Soll ich eine spezielle URL erstellen, die nur für diese Funktion verwendet wird (und vermutlich nicht vom Benutzer normal besucht wird)?

  • Sobald ich bereits den AJAX-Aufruf habe, wie genau sollte ich die Datenbankinformationen an die Vorlage zurückgeben? Ich würde annehmen, dass das irgendwie in der Ansicht gemacht wird, die der URL entspricht, die ich anrufe? Benutzt ich irgendwie die "Erfolg" -Funktion in dem Javascript, das AJAX aufruft?

Die relevanteste Frage hier fand ich war ein Django: Get database object value in template using Ajax, aber es hat alle meine Zweifel nicht klar.

Antwort

0

Für diesen speziellen Anwendungsfall sollten Sie GET verwenden. Wenn Sie jQuery verwenden, was diese Dinge wirklich einfach macht, können Sie $.GET() verwenden.

Erstellen Sie eine Ansicht, die eine JsonResponse zurückgibt, und kontaktieren Sie diese mit Ajax.

Ja. Sie verwenden die Erfolgsfunktion in jQuery GET und die Antwort enthält eine serialisierte JSON-Ausgabe von Django.

Sie können das JSON-Objekt entweder selbst erstellen oder eine Django serializer verwenden.

+0

Ich sehe. Jetzt, nachdem ich das, was ich will, von der Datenbank zurück an die Erfolgsfunktion übergeben, wie schließe ich diese Ausgabe in eine Vorlage ein? Angenommen, ich möchte auf meiner Seite eine Tabelle mit diesen Daten anzeigen? – TheMountainThatCodes

+0

Verwenden Sie Javascript, um die Tabelle zu erstellen und dann an den HTML-Code anzuhängen. '$ ('# yourdivcontainer') .html (yourGeneratedTable);' – Jaxkr