继承和修改`Meta`类

thu*_*ief 3 python django django-tables2

所以我有一个基本的 ItemTable,然后是从它继承的许多表。我似乎无法修改 Meta 类。我尝试正常地包含元类,但它不起作用,然后我找到了这个错误报告并在下面实现了它。它会默默地失败:表仅使用父元类中的列进行渲染。

class ItemTable(tables.Table):

    class Meta:
        model = Item
        attrs = {"class":"paleblue"}
        fields = ('name', 'primary_tech', 'primary_biz', 'backup_tech', 'backup_biz')

class ApplicationTable(ItemTable):

    def __init__(self, *args, **kwargs):
        super(ApplicationTable, self).__init__(*args, **kwargs)

    class Meta(ItemTable.Meta):
        model = Application
        fields += ('jira_bucket_name',)
Run Code Online (Sandbox Code Playgroud)

编辑:代码修改如下所示。我现在得到一个fields未定义的 NameError 。

bra*_*ers 5

尝试:

class ApplicationTable(ItemTable):
    class Meta:
        model = Application
        fields = ItemTable.Meta.fields + ('jira_bucket_name',)
Run Code Online (Sandbox Code Playgroud)

Meta在表中扩展时,您将遇到与在普通 Django 模型中相同的问题。