相关疑难解决方法(0)

Django Admin中的动态字段

我想要有关于一个字段值的其他字段.因此,我构建了一个自定义管理表单来添加一些新字段.

与jacobian 1的博客相关,这是我想出的:

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)
Run Code Online (Sandbox Code Playgroud)

但附加字段'foo'不会显示在管理员中.如果我添加这样的字段,一切正常,但不如所需的动态,添加关于模型的另一个字段的值的字段

class ProductAdminForm(forms.ModelForm):

    foo = forms.IntegerField(label="foo")

    class Meta:
        model = Product

class ProductAdmin(admin.ModelAdmin):
    form = ProductAdminForm

admin.site.register(Product, ProductAdmin)
Run Code Online (Sandbox Code Playgroud)

那么有什么初始化方法我必须再次触发以使新字段工作?或者还有其他尝试吗?

forms django admin dynamic

16
推荐指数
6
解决办法
1万
查看次数

动态更改 Django 管理内联表单的字段

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

在 a 中,ModelAdmin我可以用 做到这一点get_form(),只需说:

form.base_fields[field_name] = forms.ChoiceField(...)
Run Code Online (Sandbox Code Playgroud)

但我怎样才能对 an 做同样的事情InlineModelAdmin (TabularInline)呢?我走了一会儿get_formset()get_fieldsets()但找不到合适的位置。

python django admin

5
推荐指数
1
解决办法
8697
查看次数

标签 统计

admin ×2

django ×2

dynamic ×1

forms ×1

python ×1