django - 在渲染 django tables2 之前访问每一行
问题描述
我正在使用 djangotables2 来简单地呈现我的表格,但我想检查列的每一行的一些条件并打印该值的一些附加值,但无论如何我都找不到这样做在 djangotables2 中是否可行?看法
class BowlerList(LoginRequiredMixin, PagedFilteredTableView):
model = Bowlers
template_name = 'bowlers_list.html'
table_class = BowlerTable
filter_class = BowlerListFilter
formhelper_class = BowlerListFormHelper
def get_context_data(self, **kwargs):
context = super(BowlerList, self).get_context_data(**kwargs)
context['select_list'] = UserSelect.objects.filter(user=self.request.user)
return context
桌子
class BowlerTable(dt2.Table):
name = tables.LinkColumn('bowler-detail', args=[A('pk')])
class Meta:
model = Bowlers
fields = ('name', 'ahprank', 'pcarank')
template_name = 'django_tables2/bootstrap-responsive.html'
attrs = {'class': 'table table-striped table-bordered table-hover'}
per_page = 10
模板
{% render_table table %}
我需要将 Name 列的值与我将在“select_list”中获得的值进行比较,我通过视图作为上下文数据获得
解决方案
根据文档,您可以自定义每个单元格的呈现方式。在这里查看:https ://django-tables2.readthedocs.io/en/latest/pages/custom-data.html#table-render-foo-methods
基本上你会添加render_<column_name>
方法并在那里做你的事情。像这样:
class BowlerTable(dt2.Table):
name = tables.LinkColumn('bowler-detail', args=[A('pk')])
class Meta:
model = Bowlers
fields = ('name', 'ahprank', 'pcarank')
template_name = 'django_tables2/bootstrap-responsive.html'
attrs = {'class': 'table table-striped table-bordered table-hover'}
per_page = 10
def render_name(self, record):
# Your code here
您可能需要的唯一额外的事情是传递表对象select_list
的初始化 ( __init__
),以便能够在新方法中访问它。
推荐阅读
- php - 在 PHP Slim 框架中找不到类
- javascript - 渲染函数(reactjs)出错?
- java - 出现错误:未找到应用程序,当我单击 android 应用程序中的主屏幕快捷方式时
- google-cloud-platform - 在运行实例中安装包
- xaml - WPF - MVVM - Combobox UserControl + ComboboxItem CustomControl
- html - Bootstrap 宽度空白问题 avilon 主题
- svn - SVN - 创建新用户(访问)
- prolog - 从列表中打印重复的元素 - prolog
- c# - 使用 Linq 一次更新可观察集合项的两个字段
- javascript - 从 C++ 回调函数发出 Node.js 事件