In meiner Klasse habe ich über 12 Felder. Ein Feld ist Status, ein anderes ist Grund. Wenn ich auf die Bearbeitungsseite im django admin gehe, möchte ich nur das zweite Feld (Grundfeld) anzeigen, wenn der Status == 'abgelehnt' ist. Das Problem ist sehr einfach: Zeigen Sie einfach die Felder entsprechend der Benutzereingabe.Ändern von Optionen nach der Benutzerwahl
Antwort
Es gibt leider keine einfache Möglichkeit, dies rein serverseitig zu machen. Es sollte jedoch relativ einfach mit etwas JavaScript zu erreichen sein - die Sichtbarkeit des Grundfeldes wird basierend auf dem Status umgeschaltet. Im Folgenden ist ein Beispiel mit jQuery:
$(document).ready(function() {
// Toggle visibility on page load
setReasonVisibility();
// Toggle visibility on status change
$('form #id_status').bind('change', setReasonVisibility)
function setReasonVisibility() {
var form = $('form');
var status = $(form).find('#id_status').val();
if (status == 'rejected')
$(form).find('#id_reason').show();
else
$(form).find('#id_reason').hide();
}
});
Um die Form der JavaScript-Datei laden, müssen Sie es in einer Media
Klasse in das Formular für Ihr Modell finden, irgendwie wie folgt aus:
class YourModelForm(forms.ModelForm):
class Meta:
model = YourModel
class Media:
js = ('path/to/jquery.js', 'path/to/your-js-file.js')
Diese Lösung sollte nahtlos innerhalb des Django-Administrators funktionieren.
Es ist mir nicht klar, ob Sie auf die Änderung Liste oder die individuelle Bearbeitungsseite für einen Artikel beziehen. Wenn letzteres, @ Guðmundur H hat eine gute jQuery-Lösung. Wenn dies der Fall ist, können Sie dies tun, indem Sie eine Methode für Ihr Modell bereitstellen: reason_if_rejected, die den Grund zurückgibt, wenn der Status 'rejected' lautet, und andernfalls eine leere Zeichenfolge zurückgibt. Sie können dann den Namen dieser Methode in Ihre list_display Einstellung aufnehmen.
- 1. Java Skriptformen mit bestimmten Feldern je nach Benutzerwahl
- 2. Ändern SoapClient-Optionen
- 3. Ändern Dropdown-Optionen
- 4. Verwenden von Optionen in ActionSheet zum Ändern der Schaltfläche Text
- 5. aktualisieren Angular-UI bootstrap datepicker Optionen nach Datum ändern
- 6. Hinzufügen von Optionen zu Select2 nach initiitization
- 7. Ändern von Variablentypen nach der Initialisierung C++
- 8. Angular.js - Ansicht-ng-Optionen nach Änderung der Daten aktualisieren
- 9. Ändern Hintergrund der App nach und nach
- 10. Ändern Sie mit der rechten Maustaste Kontextmenü Optionen in VS2008
- 11. Ändern der Odatergebnisse nach Abfrage
- 12. Suche nach Apache Build-Optionen
- 13. Ändern der Größe der Textview nach Wortlaut
- 14. VS2010-Optionen ändern sich automatisch (Abschluss der Anweisung)
- 15. Ändern Sie den Stil der Standard Android.R.layout Optionen?
- 16. Ändern der Sitzungsvariablen nach dem Aktualisieren/Ändern der Seite
- 17. von Abholung nach SortedSet Ändern
- 18. ändern Lebensmittelgeschäft Crud Texteditor Optionen zu einfachen von fortgeschrittenen
- 19. Hinzufügen/Ändern von Optionen zum Rechtsklick auf einer Webseite
- 20. Ändern eines Textfelds basierend auf ausgewählten Optionen
- 21. Ändern der Farbe der Statusleiste nach und nach
- 22. Diagramm js Optionen nicht Chart Ändern
- 23. Django Sprache ändern Anchors vs. Optionen
- 24. Ändern von Fragen in der gleichen Textansicht und Erhalten von Optionen
- 25. loadNibNamed: Besitzer: Optionen Absturz App nach der Konvertierung in ARC
- 26. Ändern der Sortierkriterien nach dem ersten Ergebnis
- 27. Gurken `-Tags` Optionen von der Kommandozeile?
- 28. Konfiguration der Optionen von IConfigurationRoot funktioniert nicht?
- 29. Einige Optionen von der Option entfernen
- 30. Assembly Abhängigkeiten ändern nach der Installation