Ich habe einen City-Fremdschlüssel nach BusinessBranch-Modell. Das Modell "Mein Stadt" verfügt auch über Landes- und Landesschlüssel für Länder- und Bezirksmodelle. Es fällt mir schwer, in meiner BusinessBranchInline Status- und Länder-Dropdown-Menüs anzuzeigen. Was wäre der beste Weg, dies zu erreichen? Es wäre großartig, wenn die Dropdown-Elemente Elemente basierend auf dem Wert des übergeordneten Elements filtern.
Mit etwas Hackerei ist es ziemlich machbar.
Im folgenden Beispiel wird Grafschaft anstelle von Staat und Gemeinde anstelle von Stadt verwendet. Also, die Modelle sind wie folgt:
%Vor%Es gibt zwei Seiten des Problems: clientseitiges JavaScript und serverseitiges Feld-Rendering.
Das clientseitige JavaScript (mit JQuery, von dem angenommen wird, dass es von /site_media/js/municipality.js geliefert wird) lautet wie folgt:
%Vor%Nun benötigen Sie die Ajax-Ansicht, um Gemeinden zu bedienen, die zu einem bestimmten Kreis gehören (vermutlich von / communities_for_county / ):
%Vor%Und schließlich ist der serverseitige Code in admin.py zum Rendern des Feldes wie folgt. Zuerst die Importe:
%Vor%Dann das Widget:
%Vor%Als nächstes das Formular:
%Vor%Und schließlich die Admin-Klasse:
%Vor%Lassen Sie mich wissen, wenn etwas unklar bleibt.
Vielleicht möchten Sie ein benutzerdefiniertes Adress-Widget erstellen, das die Kaskadierung mit drei Dropdown-Listen behandelt. Sie können sich den Quellcode für das Widget "DateTime" als Anleitung ansehen.
Schauen Sie sich auch Tutorials zum Erstellen von benutzerdefinierten Widgets an, z. B. dieses .
Es wäre großartig, wenn die Dropdown-Elemente Elemente basierend auf dem Wert des übergeordneten Elements filtern.
Sie können die Ajax-Formularmaschine von dajaxproject für diesen Teil
Tags und Links django django-forms django-admin