2016-08-05 6 views
1

Wie erstellen Sie zwei Auswahlmenüs mit einem Diktat, wobei das Auswahlmenü B entsprechende Werte hat und von den im Auswahlmenü A vorhandenen Tasten abhängig ist?Wie würden Sie zwei Auswahlmenüs erstellen, in denen der Inhalt des Auswahlmenüs B von der Auswahl des Menüs A abhängt?

In meinem Django views.py habe ich ein Wörterbuch erstellt, das eine Liste von Projekten als Schlüssel und entsprechende Aufgaben als Werte innerhalb des Wörterbuchs enthält. Es sieht aus wie die folgende

Projekt A: Aufgabe 1

A Projekt: Aufgabe 2

A Projekt: Aufgabe 3

Projekt B: Aufgabe 1

Projekt B: Aufgabe 2

Projekt C: Aufgabe 1

etc

Ich konnte diese Informationen erfolgreich in meine Django-Vorlage übertragen, aber ich kann mir nicht vorstellen, wie ich das machen kann, was ich mit den Informationen machen muss.

Ich muss in der Lage sein, die Informationen in den Schlüsseln, dh den Projekten, zu übernehmen und ein Dropdown-Menü (A) zu erstellen, das bei Auswahl eines Schlüssels alle entsprechenden Aufgaben für den Schlüssel anzeigt 2. Dropdown-Menü (B)

Ich bin auf jede Art von Lösung. Ich denke darüber nach, jQuery zu benutzen und etwas zusammen zu hacken, aber ich weiß wirklich nicht, wie ich anfangen soll. Hat jemand Erfahrung mit so etwas?

Antwort

2

Sie können dazu django-autocomplete-light verwenden. Dies bietet im Grunde Autovervollständigung mit einer Client-Bibliothek wie select2. Aber es bietet auch einen Weg zu filter results based on another field.

Sie sollten wahrscheinlich auch eine Serverüberprüfung in Form sauber machen:

class MyForm(forms.Form): 

    project = forms.ModelChoiceField(queryset=Project.objects.all()) 
    task = forms.Model.ChoicField(queryset=Task.objects.all()) 

    def clean(self): 
     project = self.cleaned_data['project'] 
     task = self.cleaned_data['task'] 
     if task.project_id != project.pk: 
      raise forms.ValidationError(
       "The selected task does not belong to the selected project.") 
+0

Awesome, vielen Dank! Ich werde das so schnell wie möglich prüfen – jwerardi

+0

W O W danke für das Bearbeiten! Genau das, was ich brauche, vielen Dank! – jwerardi

Verwandte Themen