django_tables2表元行属性不显示

问题描述 投票:0回答:1

我使用django_tables2库在我的项目,试图实现一个表,其中的每一行会拥有data-item-name属性。我的具体表由这反过来从BaseTable类继承我的django_tables2.Table类继承。下面是代码:

怕个_table.朋友

import django_tables2 as tables

from django.utils.html import format_html

from myapp.utils.base_table import BaseTable
from myapp.models import MyModel

class PageTable(BaseTable):
    item_id = tables.Column(accessor='pk')

    # This method works perfectly fine as expected
    def render_item_name(self, record):
        return format_html(
            '<span data-item-id="{0}">{1}</span>'.format(
                record.item_id,
                record.item_name
            )
        )

    class Meta:
        model = MyModel
        # When debugging this attribute is accessed only on booting up
        # And is ignored when I for example first visit or refresh the page
        row_attrs={
            'data-item-name': lambda r: r.item_name
        }
        fields = (
            'item_id',
            'item_name',
            'item_description',
            'item_price', # etc
        )

巴塞_table.朋友

from django_tables2 import Table

class BaseTable(Table):
    def __init__(self, *args, **kwargs):
        super(BaseTable, self).__init__(*args, **kwargs)

虽然表呈现没有错误和没有分手,没有data-item-name属性没有在表中的单个行,但据我已经通过文档了,它说,宣布在表的元类此属性是不够的。是我错了或者是有什么我在这个错过了吗?任何帮助将高度赞赏。

附:我使用Python 2.7,Django的1.8.17和Django的tables2诉1.16.0

python django django-tables2
1个回答
3
投票

Django的表使用(如Django的为好)metaclasses保理这就是你在这样的线路上进行引导,因为正在创建您的表中的类时只有hitten调试器看到的原因表类。

在另一方面Django的tables2(设计)的名称为record该行的当前数据,当你自定义列属性。

您可以在docs阅读:

默认情况下,类名奇数和偶数被提供给行,这可以使用row_attrs Table.Meta属性或作为参数表的构造进行定制。弦值将只被添加,可调用会带有可选关键字参数记录被调用,返回值将被添加。例如。

© www.soinside.com 2019 - 2024. All rights reserved.