Ich versuche ein Feld in django admin Feldsets zu erstellen, um nur bestimmte Daten anzuzeigen, aber gemäß django document wird nur ein Beispiel von list_display
angezeigt, um anpassen zu können. Ich versuchte, den ähnlichen Ansatz auf fieldsets
wie folgt aus:django admin: Wie kann ein Feld in Feldsets angepasst werden?
In models.py:
def ports_with_same_scanner(self):
return PortList.objects.filter(scanner=self.scanner)
ports_with_same_scanner.short_description = 'port_lists'
In admin.py, das wird nicht funktionieren:
fieldsets = (
('Scan Template', {
'fields': (('name', 'scanner', 'ports_with_same_scanner',), 'comment', ('in_use',
'fc_growing', 'nc_growing'), 'nvt_prefs')
}),
)
Allerdings, wenn ich tun dies:
list_display = ('name', 'scanner', 'ports_with_same_scanner', 'comment', 'in_use', 'fc_growing', 'nc_growing', 'nvt_prefs')
die ports_with_same_scanner
funktioniert gut. Das Problem ist, dass ich nicht meine Anzeige von fieldsets
zu list_display
ändern möchte, frage ich mich, wie ich die gleiche Funktionalität erreichen kann. Vielen Dank.
Seit ' ports_with_same_scanner' ist kein tatsächliches Feld auf dem Modell, wie geht der obige Code nicht fehl? Wenn ich versuche, ein Nicht-Modell-Feld in meiner 'fieldsets' Definition zu definieren, wird Django mit' FieldError: Unbekanntes Feld (my_field_1, my_field_2) für MyModel arbeiten. Überprüfen Sie Felder/Feldgruppen/Attribute der Klasse MyModelAdmin.aus, und es wird ausgebrochen, BEVOR es die Methode 'formfield_for_foreignkey()' aufruft. Wie definierst du 'ports_with_same_scanner' auf eine Weise, die Django glücklich macht? – Troy