gpt4 book ai didi

django-admin - Django 管理员覆盖字段集

转载 作者:行者123 更新时间:2023-12-05 08:02:10 24 4
gpt4 key购买 nike

假设模型中有一个类继承了其他几个类。现在我们还定义了一个管理类来控制管理界面中的布局。

我们可以让所有其他管理类继承(就像我们在模型中所做的那样),但是我们如何覆盖字段集以添加一些新值?

例子:

在模型文件中:

class A(models.Model):
field1 = models.TextField(..)
field2 = models.TextField(..)

class B(A):
field3 = models.TextField(..)

在管理文件中:

class A_Admin(admin.ModelAdmin):
fieldsets = (
(None, {
'fields': (( 'field1', 'field2'))
}),
)

class B_Admin(A_Admin):
pass # here I notice that it takes the fields from A_admin, I would like to add my field 3 without rewriting the fieldsets

admin.site.register(A, A_Admin)
admin.site.register(B, B_Admin)

生成的字段集将是:

(
(None, {
'fields': (( 'field1', 'field2'))
}),

('Specific to B', {
'fields': ('field3')
}),
)

最佳答案

我不知道这是否是一个巧妙的解决方案,但它应该可以满足您的需求。

class A_Admin(admin.ModelAdmin):
fieldsets = [
(None, {'fields': ['field1', 'field2']}),
]

class B_Admin(A_Admin):
fieldsets = [
('Specific to B', {'fields': ['field3', 'field4']}),
]
fieldsets.insert(0, A_Admin.fieldsets[0])

关于django-admin - Django 管理员覆盖字段集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8975623/

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