J'essaie d'ajouter des champs personnalisés à un InlineFormset en utilisant le code suivant, mais les champs n'apparaîtront pas dans l'Admin Django. Est-ce que InlineFormset est trop verrouillé pour permettre cela? Mon test "ding" d'impression se déclenche comme prévu, je peux imprimer le formulaire.fields et les voir tous là, mais les champs réels ne sont jamais rendus dans l'admin.Comment ajouter des champs personnalisés à InlineFormsets?
admin.py
from django.contrib import admin
import models
from django.forms.models import BaseInlineFormSet
from django import forms
from forms import ProgressForm
from django.template.defaultfilters import slugify
class ProgressInlineFormset(BaseInlineFormSet):
def add_fields(self, form, index):
print "ding"
super(ProgressInlineFormset, self).add_fields(form, index)
for criterion in models.Criterion.objects.all():
form.fields[slugify(criterion.name)] = forms.IntegerField(label=criterion.name)
class ProgressInline(admin.TabularInline):
model = models.Progress
extra = 8
formset = ProgressInlineFormset
class ReportAdmin(admin.ModelAdmin):
list_display = ("name", "pdf_column",)
search_fields = ["name",]
inlines = (ProgressInline,)
admin.site.register(models.Report, ReportAdmin)
pas ce que j'espérais entendre, mais oh bien. Au moins c'est confirmé. – Soviut