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

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

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

例子:

在模型文件中:

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

https://stackoverflow.com/questions/8975623/

相关文章:

maven - 使用 build-helper-maven-plugin 和 multi modul

emacs - 在 emacs(或 DDD)中使用 gdb 时无法设置断点

oracle - 创建实体化 View 比创建表慢得多

python - 如何使用 setuptools 和 setup.py 从包中排除单个文件

math - 执行以下 1 的补码定点整数算术运算

xml - Solr DataImportHandler 不适用于 XML 文件

php - 发送邮件 sh :/usr/sbin/sendmail: Permission deni

asp.net - 签署网络表格 - 数字签名选项

php - 如何将动态生成的 PDF 文件保存到 zip 文件中?

image-processing - 使用小波和曲波进行特征提取