Django-tables2:如何使用order_by访问器

用户名

假设我们有一列,例如:

num_member = tables.Column(accessor = 'members.count', verbose_name = 'number of members' )

当我尝试在模板中对它进行排序时,它引发了:

Field Error: Cannot resolve keyword u'count' into field

我阅读了该文档,并说我们可以order_by通过传入某种形式使用accessor,但是请问我们究竟如何做到这一点?

鲁德拉

对于像Model的property方法这样的函数,您可以使用直接访问它accessor例如:

Class MyModel(models.Model):
    data= models.CharField(max_length=255)

    @property
    def print_function(self):
       return 'hello world'

#Table class
class MyTable(tables.Table):
        data= tables.Column(accessor='print_function')

    class Meta:
        model = MyModel
        fields = ('data')

使用以上方法,您可以使用访问器在表中显示不同种类的数据:

Class SomeModel(models.Model):
    some_data= models.CharField(max_length=255)
    data= models.ManyToManyField(MyModel)

    @property
    def count_function(self):
       some_data= self.data.objects.count() #returns count of the objects
       return some_data

#Table class
class SomeTable(tables.Table):
    data= tables.Column(accessor='count_function')

    class Meta:
        model = SomeModel
        fields = ('data')

访问器可用于直接访问相关外键模型的字段值,例如:

Class SomeModel(models.Model):
    somedata= models.ForeignKey(MyModel)


#Table class
class MyTable(tables.Table):
        data= tables.Column(accessor='somedata.data')

    class Meta:
        model = SomeModel
        fields = ('data')

编辑

让我们举一个如何order_by使用的例子

#Class Based view, I am subclassing ListView and SingleTableView here for example

class MyView(ListView, SingleTableView):
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['table'].order_by = '-last_updated' #last_updated is a datetimefield in model
        return context

在上面的代码中,我所做的是,我正在更改上下文中表数据的顺序,该顺序稍后将在模板中呈现。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

让 Django Tables2 工作

来自分类Dev

Django Tables2复制结果

来自分类Dev

如何在Django queryset中使用order_by?

来自分类Dev

带有 Django tables2 的动态表

来自分类Dev

Django order_by子句

来自分类Dev

如何在单个Django查询中使用基于字段值的条件使用多个order_by

来自分类Dev

Django 1.9 JSONField order_by

来自分类Dev

Django:order_by('?')结果奇怪

来自分类Dev

筛选/限制Django order_by

来自分类Dev

Django:如何处理order_by中的特殊字符

来自分类Dev

如何仅在detailview(Django)的ManytoManyfield上设置order_by?

来自分类Dev

Django Order_BY自定义函数

来自分类Dev

Django order_by()未正确排序

来自分类Dev

Django在order_by之后从字段获取值

来自分类Dev

了解多值字段的order_by(Django)

来自分类Dev

Django order_by根据内联的更新时间

来自分类Dev

在Django ORM中过滤order_by关系

来自分类Dev

Django-点击更改order_by

来自分类Dev

django:order_by并区别确定;然后order_by另一个字段...如何?

来自分类Dev

如何使用Windows对服务器进行Django远程访问

来自分类Dev

如何使用Windows对服务器进行Django远程访问

来自分类Dev

django order_by 不在服务器上工作,但在本地机器上工作正常

来自分类Dev

如何使用django_tables2排列列?

来自分类Dev

Django:Order_by 2个变量并颠倒它们之一的顺序

来自分类Dev

ProgrammingError:在使用order_by且在django中一起区别时

来自分类Dev

在 order_by django 上使用条件表达式的正确方法

来自分类Dev

django-tables2 / django-filter-使用filterclass分页

来自分类Dev

如何在django-tables2中使用django-filter

来自分类Dev

如何使用Django访问网页数据?

Related 相关文章

热门标签

归档