Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django表2未显示M2M字段_Python_Django_Django Tables2 - Fatal编程技术网

Python django表2未显示M2M字段

Python django表2未显示M2M字段,python,django,django-tables2,Python,Django,Django Tables2,我试图在django-table2中显示M2M字段,如和中所示 使用:foreigncolumn=tables.Column(accessor='foreignmodel.foreigncolumnname'),我只看到一个'--' 你知道我做错了什么吗?这对于许多领域来说并不容易,因为访问器的工作方式很简单。您可以通过'lipides.all'显示相关查询集的repr,但这似乎还不够。但是,您可以将属性(或方法)添加到有机体模型中,并在访问器中使用它。这样,您可以显示与实例相关的任何自定义信息

我试图在django-table2中显示M2M字段,如和中所示

使用:foreigncolumn=tables.Column(accessor='foreignmodel.foreigncolumnname'),我只看到一个'--'


你知道我做错了什么吗?

这对于
许多领域
来说并不容易,因为
访问器的工作方式很简单。您可以通过
'lipides.all'
显示相关
查询集的
repr
,但这似乎还不够。但是,您可以将属性(或方法)添加到
有机体
模型中,并在访问器中使用它。这样,您可以显示与实例相关的任何自定义信息:

class Organism(models.Model):
    # ...
    @property
    def lipid_names(self):
        return ', '.join(l.common_name for l in self.lipids.all())  # or similar

class OrganismTable(tables.Table):
    # ...
    lp = tables.Column(accessor='lipid_names')

然后,我建议在传递到表的
有机体
查询集
中添加一个
预取相关('lipids')
,以获得更好的性能。

首先,必须在访问器字符串中使用
'lipids'
。那么,你想在那里展示什么?所有与该生物体相关的
脂质
实例的名称?谢谢@schwobasegll!我已经试过使用较低的类脂(也包括类脂、类脂、类脂),但它也不起作用。。。。是的,我想显示所有与生物体相关的脂质实例。是的!伟大的成功了!坦克大副!你救了我一天!晚上在澳大利亚!真的很感激,现在我可以睡觉了!有一件事:如果表数据不是queryset,而是python列表,则只能按非db字段列对表进行排序,因此可能需要将列
orderable=False
或将queryset转换为list;)这非常有效~不过我想知道,如果我想添加一个多字段过滤器,你有什么建议?由于需要筛选,我将qs更改为列表,但随后我无法使用django筛选器,因为它似乎只接受queryset(而且它也不允许我筛选此属性)。有什么想法吗?
class Organism(models.Model):
    # ...
    @property
    def lipid_names(self):
        return ', '.join(l.common_name for l in self.lipids.all())  # or similar

class OrganismTable(tables.Table):
    # ...
    lp = tables.Column(accessor='lipid_names')