我试图使用下面的代码将自定义字段添加到InlineFormset中,但是字段不会出现在Django管理中。InlineFormset是否太过锁定,不允许这样做?我的打印"ding“测试会像预期的那样触发,我可以打印出form.fields并在那里看到它们,但是实际的字段从未呈现在管理程序中。
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)发布于 2009-02-09 12:12:45
model = models.Progress在admin中,只有在这个进度模型中定义的字段。您没有字段/字段集选项覆盖它。
如果要添加新的选项,有两个选项:
看看字段,场集。
https://stackoverflow.com/questions/526795
复制相似问题