将附加参数传递给 django_table2 TemplateColumn

Pass additional parameters to django_table2 TemplateColumn

在我的 django 项目中,我有很多 return 模型的表。最后一列主要是一个操作列,用户可以在其中编辑或删除实例。如果我想将其他参数传递给 TemplateColumn 如果在某些表中我想要一个编辑和删除按钮而在其他表中我只需要一个编辑和信息按钮,我该如何继续?我想使用相同的 template.html 但有条件。这是我在 Table:

中的内容
import django_tables2 as tables
from select_tool.models import DefactoCapability

class DefactoCapabilityTable(tables.Table):

    my_column = tables.TemplateColumn(verbose_name='Actions', template_name='core/actionColumnTable.html')

    class Meta:
         model = DefactoCapability
         template_name = 'django_tables2/bootstrap-responsive.html'
         attrs = {'class': 'table table-xss table-hover'}
         exclude = ( 'body', )
         orderable = False

以及如何检查操作权限以便显示按钮?

引用 TemplateColumn docs

A Template object is created [...] and rendered with a context containing:

  • record – data record for the current row
  • value – value from record that corresponds to the current column
  • default – appropriate default value to use as fallback
  • row_counter – The number of the row this cell is being rendered in.
  • any context variables passed using the extra_context argument to TemplateColumn.

所以你可以这样做:

my_column = tables.TemplateColumn(
    template_name='core/actionColumnTable.html',
    extra_context={
        'edit_button': True,
    }
)

上下文还包含调用 {% render_table %} 的模板的完整上下文。因此,如果您的 context_processors 中有 'django.template.context_processors.request',则可以使用 {{ request.user }}.

访问当前用户