将其他参数传递给django_table2 TemplateColumn

时间:2018-06-13 07:34:54

标签: django-tables2

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

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

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

1 个答案:

答案 0 :(得分:2)

引用TemplateColumn docs

  

创建一个Template对象,并使用包含以下内容的上下文进行渲染:

     
      
  • record - 当前行的数据记录
  •   
  • value - 与当前列对应的记录值
  •   
  • default - 用作后备的适当默认值
  •   
  • row_counter - 呈现此单元格的行数。
  •   
  • 使用extra_context参数传递给TemplateColumn的任何上下文变量。
  •   

所以你可以这样做:

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

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