我有一个这样定义的表django-tables2:
class MyTable(tables.Table):
action = tables.Column()
class Meta:
model = User
fields = ['name', 'email']
def render_action(self, record):
return 'Foo'
Run Code Online (Sandbox Code Playgroud)
但是该render_action方法被忽略,而是为每一行打印一个 -- 。我错过了什么?
我是django的新手,并且通过创建我的第一个站点而绊脚石。我正在使用django-tables2显示一个表,它似乎正在工作(该表显示出来,可以排序)。
除了我似乎无法自定义任何内容。排除,字段和顺序不起作用。无法更改列详细名称。
表:
import django_tables2 as tables
from sl_overview.models import DailyslSumm
class slsummTable(tables.Table):
class Meta:
model = DailyslSumm
exclude = ('index')
Run Code Online (Sandbox Code Playgroud)
视图:
class sl_summ(SingleTableView):
model = DailyslSumm
context_object_name = 'slsummdb'
table_class = slsummTable
Run Code Online (Sandbox Code Playgroud)
模板:
{% load render_table from django_tables2 %}
{% render_table slsummdb %}
Run Code Online (Sandbox Code Playgroud)
上面的代码中的排除无效。该列仍然在那里。使用字段也不会调整列。我确定我缺少简单的东西,感谢您的帮助。
LinkColumn我在新版本中找不到 的替代品django-tables2。作者声明LinkColumn已弃用且不应使用。但新linkify解决方案的文档记录很少,并且不具备旧版本的所有功能。例如我有这个专栏:
edit = tables.LinkColumn(
'wagtailadmin_pages:edit', args=[A('page.pk')],
text='Edit'
)
Run Code Online (Sandbox Code Playgroud)
它显示一个指向名为 的 wagtail 管理编辑页面的链接Edit。根本没有办法实现相同的使用,linkify因为只有在列上linkify有效的情况下才有效。accessor但访问器无法为所有行返回相同的静态文本(除非我修改模型以添加虚拟属性 - 但此特定模型位于第 3 方包中,无论如何它都会感觉像管道胶带解决方案)。
在所有其他情况下,列将不会显示链接。我研究了源代码,似乎 django-tables2 > 2.0.0 根本不支持这种情况。
是否有任何干净且易于理解的方法来使用静态链接文本构建链接列linkify?
在django-tables2中,默认情况下,所有表列都支持排序.这意味着所有列标题都呈现为链接,允许用户调整表数据的顺序.但我不希望列标题呈现为链接,如何做到这一点?
这是文件!
默认情况下,所有表列都支持排序.这意味着所有列标题都呈现为链接,允许用户调整表数据的顺序.
可以基于表或列禁用排序.
Table.Meta.orderable = False – default to disable ordering on columns
Column(orderable=False) – disable ordering for specific column
Run Code Online (Sandbox Code Playgroud)
例如禁用除一个以外的所有列:
class SimpleTable(tables.Table):
name = tables.Column()
rating = tables.Column(orderable=True)
class Meta:
orderable = False
Run Code Online (Sandbox Code Playgroud)
我这样做,但它不起作用.这是我的talbes.py文件:
class MusicBaseTable(tables.Table):
songs = tables.CheckBoxColumn()
title = tables.Column()
artist = tables.Column()
album = tables.Column()
genre = tables.Column()
date = tables.Column()
class Meta:
orderable = False
attrs = {"class": "list"}
Run Code Online (Sandbox Code Playgroud) 喜欢django-tables ......但是我确定无法解决的问题是让我适应.当我为给定行/列传递的值如下:
some<br/>random<br/>words<br/>returned
Run Code Online (Sandbox Code Playgroud)
我希望浏览器解析并呈现该单元格中的内容......看起来像这样:
一些
随机的
单词
返回
不要逃避我传递的内容,并将其显示如下:
some<br/>random<br/>words<br/>returned
Run Code Online (Sandbox Code Playgroud)
当然有一些我错过的旗帜或选项?
我正在使用 django_table2 来显示来自 mysql 数据库的数据。其中一列是文本列。文本列中的数据显示时没有任何换行符。我知道 django 有linebreaks过滤器。我的模板只是这样{% render_table table %}做,使用该过滤器不是一种选择。django_tables2 有几个不同列类型的选项,例如tables.BooleanColumn但我没有看到文本列的选项。我真正想要的是换行符才能正常工作。