Wie rufe ich ein Modell Methode in django ModelAdmin fieldsets?
Will ich die Anzeige einer eingebetteten Karte auf ein admin-Formular, wenn bereits Daten in der db. Ich habe den folgenden code:
models.py
class Address(models.Model):
address = models.CharField()
def address_2_html(self):
if self.address:
# Return html for an embedded map using the entered address.
return embedded_map_html
else:
return ''
address_2_html.allow_tags = True
admin.py
class AddressAdmin(admin.ModelAdmin):
fieldsets = [(label, {'fields': ['address','address_2_html']}),]
Funktioniert das nicht. Ich bekomme eine Fehlermeldung:
'AddressAdmin.fieldsets[1][1]['fields']' refers to field 'address_2_html' that is missing from the form.
Andere Sache, die ich versuchte, wurde mit der "Beschreibung" option für die "fieldsets', jedoch 'address_2_html' nicht zugänglich ist im Rahmen der AddressAdmin. Ich war erfolgreich bei der Einbettung einer statischen Karte mit 'Beschreibung', das war cool, aber nicht cool genug.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie (aus dem Gedächtnis):
readonly_fields
wie in meinem Beispiel?fieldsets
. Es ist etwas falsch an einer anderen Stelle im code.return format_html(...)
statt.allow_tags = True
, da veraltet.Problem gelöst durch überschreiben get_fieldsets() da die get_fieldsets () - Methode ermöglicht den Zugriff auf das Modell-Objekt Address.