gpt4 book ai didi

django - django_tables2 中的自定义列

转载 作者:行者123 更新时间:2023-12-04 11:21:35 25 4
gpt4 key购买 nike

我已经对此进行了搜索,但运气不佳,因此寻求帮助。我正在尝试使用模型中的函数定义向模型定义的表添加一些额外的列。这是我的代码现在的样子:

# models.py
class MyModel(models.Model):
my_field = models.TextField()

def my_function(self):
# Return some calculated value based on the entry
return my_value

# tables.py
class MyTable(tables.Table):

my_extra_column = tables.Column(....)

class Meta:
model = MyModel

# views.py
table = MyTable(MyModel.objects.all())
RequestConfig(request).configure(table)
return render(request, ....)

我的问题是我可以访问 my_function在传递给 MyTable 的条目中所以我可以显示 my_function 的结果在定制 my_extra_column柱子?我假设我需要使用访问器,但我看不到如何使用它访问查询集数据。谢谢!

最佳答案

我最后想通了,毕竟它实际上并不太难:)
因此,使用我上面的示例,为了使用关联模型中的函数添加自定义列,您只需使用 accessors ...

# models.py
class MyModel(models.Model):
my_field = models.TextField()
my_field_2 = models.IntegerField()

def my_function(self):
# Return some calculated value based on the entry
return my_value

# tables.py
class MyTable(tables.Table):

my_extra_column = tables.Column(accessor='my_function',
verbose_name='My calculated value')

class Meta:
fields = ['my_field', 'my_field_2', 'my_extra_column']
model = MyModel

如果您希望能够对这些数据进行排序,那么麻烦就来了,因为该函数不会转换为 MyModel 中的任何有效字段。 .因此,您可以使用 ordering=False 禁用对此列的排序。或使用 order_by=('field', 'field2') 指定一个集合

关于django - django_tables2 中的自定义列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35840153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com