标签: django-tables2

django-tables2列集

如何告诉django-tables2我想在表中包含哪些列?我知道这个Column属性是 'visible',可以设置为False.但是我有一个包含许多字段的模型,并且只想显示其中的一些,因此编写所有列的完整列表,只是为了告诉它们大部分都不可见,这似乎不是正确的方法.

我正在寻找的是一种提供要显示的列名列表的方法,如果可行的话甚至可以让用户能够选择他想要的列.

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

由于我没有找到任何django-tables2讨论论坛,我在这里问.

django django-tables2

17
推荐指数
1
解决办法
7948
查看次数

Django表 - 列过滤

我开始使用django-tables2(我可以从第一印象中强烈推荐),我问自己如何实现列过滤.我没有找到相应的文档,但我确定它在某处.

python django django-tables2

12
推荐指数
1
解决办法
1万
查看次数

在django-tables2中禁用分页?

我有一个表,我不想分页.我没有指定分页,如文档中所示:

table.paginate(page=request.GET.get('page', 1), per_page=25)
Run Code Online (Sandbox Code Playgroud)

表格仍然是分页,大概是默认情况下.在RequestConfig类文档字符串表示,通过假值PAGINATE禁用分页,但我在它模糊.以下是我在视图类中尝试过的选项:

my_table.paginate = False
RequestConfig(request).configure(my_table, paginate=False)
RequestConfig(request).configure(my_table).paginate(False)
RequestConfig(request).configure(my_table, {table.paginate:False})
RequestConfig(request).configure(my_table, {paginate:False})
RequestConfig(request).configure(my_table, {"paginate":False})
Run Code Online (Sandbox Code Playgroud)

tags django django-tables2

12
推荐指数
1
解决办法
2508
查看次数

django-tables2中的非查询集数据排序

文档说:

如果表由模型支持,数据库将处理排序.如果不是这种情况,则使用Python cmp函数,并且在比较不同类型时使用以下机制作为回退:...

但是,这可能在一个表由模型的支持下,在自定义列?例如

class MyModel(models.Model):
    x = models.IntegerField()
    y = models.IntegerField()

    def z(self):
        return x+y

class MyTable(tables.Table):
    z = tables.Column()
    class Meta:
        model = MyModel
Run Code Online (Sandbox Code Playgroud)

当我尝试这样的事情时,列显示OK,但是当我点击列标题进行排序时,我收到此错误:

渲染时捕获FieldError:无法将关键字u'z'解析为字段.选择是:......

显然这是因为在数据库表中找不到z.

有没有解决的办法?

django django-tables2

11
推荐指数
1
解决办法
2101
查看次数

使用django-tables2时出错 - 预期的表或查询集,而不是'str'

我正在尝试使用django-tables2为我的应用程序创建一些表并遇到一些困难.我使用的是Python 2.7和Django 1.7.我正在按照教程,遇到了问题.

我到了需要创建Table类进行自定义的地步.但是,每当我这样做,我会收到以下错误:

预期的表或查询集,而不是'str'.

在做了一些 研究之后,看起来我正在使用旧版本的django-tables2.但是,我昨天刚安装它pip install django-tables2并在半小时前更新了它.知道如何让django-tables2正常工作吗?

编辑 - 问题解决了.我用的是{% render_table people %}代替{% render_table table %}

python-2.7 django-tables2 django-1.7

10
推荐指数
3
解决办法
3983
查看次数

Django-tables2 - 动态地向表添加列 - 不在html中向表标记添加attrs

在我的Django项目中,我需要有表,哪些列是动态的,并且取决于数据库中的内容.所以我在这里找到了一个解决方案,它有效,但有一点问题.这是我正在动态扩展的表的类:

class ClientsTable(tables.Table):
    class Meta:
        model = Client
        attrs = {"class": "paleblue", "orderable":"True", "width":"100%"}
        fields = ('name',)

    def __init__(self, *args, **kwargs):
        super(ClientsTable, self).__init__(*args, **kwargs)
        self.counter = itertools.count()

    def render_row_number(self):
        return '%d' % next(self.counter)

    def render_id(self, value):
        return '%s' % value
Run Code Online (Sandbox Code Playgroud)

这是扩展类的方法:

def define_table(roles):
    attrs = dict((r.name, tables.Column() for r in roles)
    klass = type('DynamicTable', (ClientsTable,), attrs)
    return klass
Run Code Online (Sandbox Code Playgroud)

当我在views.py中创建一个像这样的表:

table = define_table(roles)(queryset)
Run Code Online (Sandbox Code Playgroud)

该表显示了我想要的列,但在html代码中,我看到它忽略了attrs:

{"class": "paleblue", "orderable":"True", "width":"100%"}
Run Code Online (Sandbox Code Playgroud)

所以paleblue没有css风格,这对我很重要.我觉得它可能是Meta类的东西但是字段和模型正在工作,所以我不知道为什么没有attrs.

python django django-tables2

8
推荐指数
2
解决办法
4596
查看次数

Django-tables2:如何使用访问器引入外来列?

我已经尝试过阅读文档和以前对这个问题的答案而没有太多运气.

我有一堆学生课程注册,我希望看到一些选定的注册与学生的一些属性相结合.到目前为止没有运气......我会请求你的建议!

这是模型:

class Student(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    netID = models.CharField(max_length=8)

class Registration(models.Model):
    student = models.ForeignKey(Student)
    course = models.ForeignKey(Course)
    attendance_M = models.BooleanField(default=False)
    attendance_Tu = models.BooleanField(default=False)
Run Code Online (Sandbox Code Playgroud)

这是tables.py:

class AttendanceTable(tables.Table):
    netID = tables.Column(accessor='Student.netID')
    first = tables.Column(accessor='Student.first_name')
    last = tables.Column(accessor='Student.last_name')
    class Meta:
        model = Registration
        attrs = {"class": "paleblue"}
        fields = ('attendance_M', 'attendance_Tu',)
        sequence = ('netID', 'first', 'last', 'attendance_M', 'attendance_Tu',)
Run Code Online (Sandbox Code Playgroud)

虽然我正在获取出勤率值的数据,但学生的外国专栏中没有任何内容.

netID   First   Last    Attendance M    Attendance Tu
 —         —      —      ?               ? 
Run Code Online (Sandbox Code Playgroud)

如果我使用model = Student启动Table并对Registration表使用访问器,这是同样的交易,这是相同的交易.

我觉得我错过了很有概念性和关键性的东西 - …

python django django-tables2

8
推荐指数
1
解决办法
5331
查看次数

关于django-tables2的链接列

我使用django-tables2来显示页面中的一些数据,现在我想将单元格链接到某个URL,但链接URL如下:

url(r'^(?P\w +)/(?P\d +)/ $','pool.views.pooldatestock',name ="pool_date_stock"),

我读了django-tables2的文件,但我找不到关于这个问题的一些例子.

表格在页面的网址中显示如下:http://127.0.0.1:8000/pool/20111222 /

我试着在tables.py中写这个:

class PoolTable(tables.Table):
    number = tables.LinkColumn('pool.views.pooldatestock', args=[A('number')])
    date = tables.Column()
Run Code Online (Sandbox Code Playgroud)

然后我试着写:

class PoolTable(tables.Table):
    number=tables.LinkColumn('pool.views.pooldatestock',
                             args=[A('date')],
                             kwargs=A('number')])
    date = tables.Column()
Run Code Online (Sandbox Code Playgroud)

但它也是错误的......

有人可以告诉我如何解决这个问题吗?或者我应该创建自己的表视图,而不是django-tables.

谢谢.圣诞快乐:)

django django-tables2

7
推荐指数
1
解决办法
3946
查看次数

django-tables2为不同的行指定不同的属性

我想用django-tables2创建一个表,以便不同的行具有不同的属性.

默认情况下,我得到了

<tr class="odd">
Run Code Online (Sandbox Code Playgroud)

要么

<tr class="even">
Run Code Online (Sandbox Code Playgroud)

如何为某些行指定自己的类?

同样,如果我有一个CheckBoxColumn并且我为此列指定了一些数据,那么它将进入以下:

<input type="checkbox" name="col" value="123"/>
Run Code Online (Sandbox Code Playgroud)

这非常适合确定选中了哪个复选框.但是,如何在创建表时将一些复选框设置为选中状态?

我的场景:用户从大表中选择一些行.例如,表格有

  • 橙色1
  • 橙色2
  • 苹果5
  • 橙色3
  • 苹果4
  • 黄瓜7
  • aaple 1

用户选择aaple 5黄瓜7.

然后我想显示所有苹果和所有黄瓜,因为用户至少挑选了一个苹果和至少一个黄瓜.这允许用户查看其他相关条目:

  • 苹果5
  • 苹果4
  • 黄瓜7

但是,我想通过使用css和/或显示选中的复选框来突出显示用户实际选择的条目:

  • 苹果5
  • 苹果4
  • 黄瓜7

css python checkbox django-tables2

7
推荐指数
2
解决办法
5058
查看次数

Django-tables2:更改列标题中显示的文本

我正在使用MySQL视图(Create View as Select ...)并已成功管理以将视图连接到这样的模型:

#models.py
class Dashboard(models.Model):
    devenv = models.CharField(max_length=30, primary_key=True)
    numberofissues = models.BigIntegerField()
    class Meta:
        managed=False
        db_table = 'stability_dashboard'
Run Code Online (Sandbox Code Playgroud)

我还设法使用示例中的样板代码在表格中显示数据:

#tables.py
class DashboardTable(tables.Table):
    class Meta:
        model = Dashboard
        attrs = {'class': 'paleblue'}

#views.py
def dashboard(request):
    table = DashboardTable(Dashboard.objects.all())
    RequestConfig(request).configure(table)
    return render(request, 'uptime/dash.html', {'table': table})
Run Code Online (Sandbox Code Playgroud)

我现在想将每列中显示的标题更改为更容易理解的内容,包括空格,例如,而不是'devenv'=>'开发环境'

django django-tables2

7
推荐指数
1
解决办法
5300
查看次数

标签 统计

django-tables2 ×10

django ×8

python ×4

checkbox ×1

css ×1

django-1.7 ×1

python-2.7 ×1

tags ×1