Ich möchte zusätzliche Felder zum Wert eines Feldes haben. Deshalb habe ich ein benutzerdefiniertes Admin-Formular erstellt, um einige neue Felder hinzuzufügen.
Bezogen auf den Blogbeitrag von Jacobian 1 ist dies, was ich gemacht habe:
class ProductAdminForm(forms.ModelForm):
class Meta:
model = Product
def __init__(self, *args, **kwargs):
super(ProductAdminForm, self).__init__(*args, **kwargs)
self.fields['foo'] = forms.IntegerField(label="foo")
class ProductAdmin(admin.ModelAdmin):
form = ProductAdminForm
admin.site.register(Product, ProductAdmin)
Aber das zusätzliche Feld 'foo' erscheint nicht im Adminbereich. Wenn ich das Feld so hinzufüge, funktioniert alles gut, ist aber nicht so dynamisch wie erforderlich, um die Felder entsprechend dem Wert eines anderen Feldes des Modells hinzuzufügen
class ProductAdminForm(forms.ModelForm):
foo = forms.IntegerField(label="foo")
class Meta:
model = Product
class ProductAdmin(admin.ModelAdmin):
form = ProductAdminForm
admin.site.register(Product, ProductAdmin)
Gibt es also eine Initialisierungsmethode, die ich erneut auslösen muss, um das neue Feld zum Laufen zu bringen? Oder gibt es einen anderen Ansatz?