【问题标题】:django-tables2 exclude not working SingleTableMixindjango-tables2 排除不工作的 SingleTableMixin
【发布时间】:2017-06-03 23:51:18
【问题描述】:

使用 SingleTableMixin,只有模型被传递到渲染表。我注释掉了每一行,直到它坏了,**model = Stat 是它工作所需的唯一东西。

我看到了类似的问题,但对我的情况没有什么特别的,因为表格正在呈现,除了模型之外没有任何类元信息

tables.py

class StatTable(tables.Table):

class Meta:
    model = Stat
    data = Stat.objects.all()
    exclude = ('id',)
    attrs = {'class': 'table table-hover table-condensed'}

views.py

class StatTableMixin(SingleTableMixin):
    table_class = StatTable
    context_table_name = 'stat_table'

class AircraftList(ListView, StatTableMixin):
    model = Aircraft
    template_name = "aircraft/aircraft_list.html"

def get_context_data(self, **kwargs):
    context = super(AircraftList, self).get_context_data(**kwargs)
    context['title'] = "D-> | Aircraft"
    context['stat_table'] = Stat.objects.all()
    return context

【问题讨论】:

  • data 不是 Table.Meta 的有效属性。

标签: django django-tables2


【解决方案1】:

您正在使用自定义context_table_name,并在get_context_data() 中为该名称分配QuerySet (Stat.objects.all())。这将使 django-tables2 呈现 queryset 的默认视图,而不是您想要的自定义视图 (StatTable)。

您可以通过不将查询集分配给 context['stat_table'] 并使用 ListView.get_queryset() 准备正确的查询集以使用数据填充表来解决此问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-20
    • 1970-01-01
    相关资源
    最近更新 更多