2012-07-24 73 views
15

如何辨别django-tables2列表我想在表中列出哪些列?我知道这个Column attribute'可见',可以设置为False。 然而,我有一个模型有许多字段,并且只想显示其中的一部分,因此编写所有列的完整列表,只是为了说明其中大多数字段不可见,似乎不是正确的方法。django-tables2列集

我在寻找的是一种提供列名显示列表的方法,如果这是可能的,那么甚至可以让用户选择他想要的列。

另一个解决方案出现在我的脑海 - 默认情况下使'可见'属性为False,但由于它是在Column类中定义的,我仍然需要编写一个完整的列表。

由于我还没有找到任何django-tables2讨论论坛,我在这里问。指定型号场

+0

您的意思是动态显示/隐藏列或只是配置在运行时显示哪些字段? – 2012-08-10 07:43:58

+0

主要目标是通过提供一组列名来确定显示哪些字段,动态部分是可选的。没有我的主要目标,我实际上并没有看到如何实现动态的部分。 – liepumartins 2012-08-13 07:05:40

+0

你应该在'table中使用'Meta:fields:()'或'exclude:()'。表格定义不应该吗? – 2012-08-13 09:40:49

回答

23

模型

class Product(model.Models): 
    name = model.CharField(max_length=20) 
    price = model.DecimalField(max_digit=9, decimal_places=2) 

你表

class ProductTable(tables.Table): 
    actions = ProductActions(orderable=False) # custom tables.Column() 
    class Meta: 
     model = Product 
     fields = ('name', 'price', 'action') # fields to display 

另外你也可以使用exclude

Related docs entry here

+0

太棒了,我也使用'序列',因为'字段'选项不会改变它,就像它与ModelForm一样。 – liepumartins 2012-08-13 12:29:37

+0

是的,这个django-tables2真的是一个很酷的应用程序,并且简化了很多生活。 – 2012-08-13 12:53:11

+1

我阅读了15次文档,无法阅读,但是当我遵循链接时,我看到了它。 FML – Tjorriemorrie 2014-08-08 12:32:24