Estoy tratando de agregar campos personalizados a un InlineFormset usando el siguiente código, pero los campos no se mostrarán en el administrador de Django. ¿El InlineFormset está demasiado bloqueado para permitir esto? Mi prueba de impresión "ding" se dispara como se esperaba, puedo imprimir los campos de formulario y verlos allí, pero los campos reales nunca se representan en el administrador.Cómo agregar campos personalizados a 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)
No es lo que esperaba oír, pero bueno. Al menos está confirmado. – Soviut