Mit Django und Jquery Daten aus DB laden

Django, Flask, Bottle, WSGI, CGI…
Antworten
LongJohnBeule
User
Beiträge: 2
Registriert: Dienstag 28. Mai 2013, 21:06

Hallo ich als ziemlicher Django und Jquery noob hätte da mal eine Frage und zwar geht es um folgendes:
Ich habe in einem Django-Tamplate ein Dropdown-Menü definiert und ein bisschen Javascript in dieser art:

Code: Alles auswählen

        <script language="javascript">
            function load(){
	            $('#kategorie').load(kategorie/einzelenKategorie);
            }
           </script>
Wenn ich in diesem Dropdown-Menü jetzt einen Eintrag auswähle möchte ich, dass automatisch alle Datensätze dieser Kategorie aus der Datenbank gelesen werden und in dem div="uebersicht" als Tabelle angezeigt werden. Das heißt ich muss irgendwo sowas wie:

Code: Alles auswählen

def einzelenKategorie(request, kategorie):
    eintraege= Eintraege.objects.all().filter(kategorien=kategorie).order_by('-datum')
    return render(), 'kategorie/uebersichtKategorie.html', {'eintraege': eintraege}
haben.
Jetzt verstehe ich nicht wie ich von dem Tamplate die ausgewähle Kategorie quasi das id='kategorie' mit Jquery in die Views bekomme und ob das so überhaupt funktioniert wie ich mir das denke oder ob ich völlig auf dem falschen Dampfer bin.
Schonmal vielen Dank.
Viele Grüße

LongJohnBeule
Benutzeravatar
daemonTutorials
User
Beiträge: 171
Registriert: Sonntag 6. Februar 2011, 12:06
Kontaktdaten:

Klar funktioniert das. Das View muss halt per GET oder POST die Kategorie annehmen können. (HttpRequest [1])
Und dann per AJAX-Request[2] das View abfragen und die Kategorie übermitteln. Die Rückgabe in das DIV schreiben.

Die Darstellung in HTML ist im Template definiert, das ist logisch. Und wie du einen EventListener auf dein Dropdown-Menü bekommst:

Code: Alles auswählen

$("select.categories").click(function(){ 
    category = $("select.categories option:selected").val();
});
Hoffe geholfen zu haben ;)

MfG

Maik
[1] https://docs.djangoproject.com/en/dev/r ... -response/
[2] http://api.jquery.com/jQuery.ajax/
LG Maik
LongJohnBeule
User
Beiträge: 2
Registriert: Dienstag 28. Mai 2013, 21:06

Hey, danke für die antwort, klappt so wie ich wollte!

Grüße

LongJohnBeule
Antworten