Django Dynamische Dropdown-Liste aus der Datenbank

8

Ich wollte eine Django-App entwickeln, und eine der Funktionen, die ich gerne hätte, sind dynamische Dropdown-Listen ... speziell für Fahrzeugmarken und -modelle ... die Auswahl einer bestimmten Marke aktualisiert nur die Modellliste die Modelle, die darunter fallen .... Ich weiß, dass dies in Javascript oder jQuery möglich ist (das wäre meine beste Wahl, wenn jemand eine Antwort hat), aber ich weiß nicht, wie ich das anstellen soll.

Ich möchte auch, dass die Marke, das Modell, das Jahr und die Serie den anderen Attributen wie Farbe, Übertragung usw. als Variablen entsprechen, so dass man die Marke, das Modell, das Jahr und die Serie nur für eine eingeben muss neues Fahrzeug. Irgendwelche Ideen würden sehr geschätzt.

    
geowa4 26.08.2009, 12:55
quelle

2 Antworten

9

Die 3 Dinge, von denen Sie sagen, dass sie üblich sind, Marke, Modell, Jahr, wären die 3 Eingabewerte. Wenn das Objekt dem Server übergeben wird, wird ein Objekt mit den Details an die aufrufende Seite zurückgegeben. Diese Seite analysiert die Objektdetails (mithilfe von JavaScript) und aktualisiert die Benutzeroberfläche, um sie dem Benutzer anzuzeigen.

Von der Seite von Django aus müssen die Einrichtungen vorhanden sein, um die 3 Eingänge zu nehmen und die Ausgabe zurückzugeben. Auf der Client-Seite müssen die Möglichkeiten bestehen, die 3 Eingaben an den Server zu übergeben und dann die Antwort des Servers entsprechend zu parsen.

Es gibt ein REST-API-Framework für Django, das es ziemlich einfach macht, die oben erwähnte "api" hinzuzufügen - Kolben . Mit Piston müssen Sie lediglich eine URL für diese Ressource erstellen und dann einen Handler hinzufügen, um sie zu verarbeiten. (Sie müssen immer noch die Piston Dokumentation überfliegen, aber das sollte Ihnen eine Vorstellung davon geben, wie es aussieht)

%Vor%

Damit wird einfach die URL www.yoursite.com/vehicle/[make]/[model]/[year]/json eingerichtet, um ein benutzerdefiniertes Datenobjekt in JSON zurückzugeben, damit jquery analysiert werden kann.

Auf der Client-Seite könnten Sie jquery verwenden, um ein Ereignis (bind) einzurichten, sodass, wenn alle 3 Dropdown-Felder einen Wert ausgewählt haben, ein $ .get () für die API-URL ausgeführt wird. Wenn dieses Ergebnis zurückgegeben wird, übergibt es es an den Jquery-JSON-Parser und gibt das benutzerdefinierte Objekt als JavaScript-Objekt an. Dieses Objekt könnte dann verwendet werden, um weitere Dropdown-Menüs zu füllen.

(Große Warnung, ich habe nur das Folgende von meinem Kopf geschrieben, also ist es nicht zum Kopieren und Einfügen gedacht. Es ist nur für die allgemeine Idee.)

%Vor%

    
T. Stone 10.09.2009, 18:49
quelle
0

Das ist unheimlich: Dynamisch gefilterte Drop-Down-Auswahlfelder mit Django

Seine Frage:

  

"Hier ist die Situation: Ich habe eine Datenbank mit Automarken und -modellen. Wenn ein Benutzer eine Marke auswählt, möchte ich die Drop-down-Liste der Modelle nur mit den Modellen aktualisieren, die dieser Marke zugeordnet sind. ... Daher möchte ich Ajax verwenden, um die Daten zu füllen. "

Sie sind nicht der gleiche Typ? :)

    
Williams 26.08.2009 15:59
quelle