4

我想将 CharField 动态更改为 ChoiceField,因为我希望从由当前请求确定的可能性列表中选择值。

在 ModelAdmin 中,我可以使用 get_form() 来做到这一点,然后说:

form.base_fields[field_name] = forms.ChoiceField(...)

但是我怎样才能为 InlineModelAdmin (TabularInline) 做同样的事情?我通过 get_formset() 和 get_fieldsets() 进行了一些操作,但找不到合适的位置。

4

2 回答 2

3

有一种get_formsets方法可以get_form用于内联。这是来自的默认版本django.contrib.admin.options.ModelAdmin

def get_formsets(self, request, obj=None):
    for inline in self.inline_instances:
        yield inline.get_formset(request, obj)
于 2012-07-30T15:22:31.647 回答
-1

你可以给 InlineModelAdmin 一个表单类:

https://docs.djangoproject.com/en/dev/ref/contrib/admin/#inlinemodeladmin-options

或者对于动态的东西,你可以覆盖 get_form 方法:

https://github.com/django/django/blob/master/django/contrib/admin/options.py#L431

于 2012-07-30T12:14:19.337 回答