gpt4 book ai didi

django - Django Admin 中的动态字段

转载 作者:行者123 更新时间:2023-12-03 14:34:24 26 4
gpt4 key购买 nike

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

与 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)

但是附加字段 '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)

那么是否有任何我必须再次触发才能使新字段工作的初始化方法?或者还有其他尝试吗?

最佳答案

这是问题的解决方案。感谢 koniiiik 我试图通过扩展 *get_fieldsets* 方法来解决这个问题

class ProductAdmin(admin.ModelAdmin):
def get_fieldsets(self, request, obj=None):
fieldsets = super(ProductAdmin, self).get_fieldsets(request, obj)
fieldsets[0][1]['fields'] += ['foo']
return fieldsets

如果您使用多个字段集,请确保使用适当的索引将其添加到正确的字段集。

关于django - Django Admin 中的动态字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8007095/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com