我试图在django-table2中显示一个M2M字段,如Django-tables2: How to use accessor to bring in foreign columns?和Accessing related models with django-tables2
使用:foreigncolumn=表.列(访问器='foreignmodel.foreigncolumnname'),我只看到一个'--'。。。在
# The models:
class Organism(models.Model):
species_name = models.CharField(max_length=200)
strain_name = models.CharField(max_length=200)
eukaryotic = models.BooleanField(default=True)
lipids = models.ManyToManyField('Lipid',blank=True)
class Lipid(models.Model):
lm_id = models.CharField(max_length=100)
common_name = models.CharField(max_length=100,blank=True)
category = models.CharField(max_length=100,blank=True)
#The tables
class OrganismTable(tables.Table):
name = tables.LinkColumn('catalog:organism-detail', text=lambda record: record.species_name, args=[A('pk')])
lp = tables.Column(accessor='Lipid.common_name')
class Meta:
model = Organism
sequence = ['name','lp']
exclude = ['id','species_name']
你知道我做错什么了吗?在
这对于
ManyToManyFields
并不容易,因为Accessor
的工作方式很简单。您可以通过'lipids.all'
显示相关的repr
,但这在这里似乎还不够。但是,您可以将属性(或方法)添加到Organism
模型中,并在访问器中使用它。这样,可以显示与实例相关的任何自定义信息:我建议在传递给表的
prefetch_related('lipids')
中添加一个Organism
QuerySet
,以获得更好的性能。在相关问题 更多 >
编程相关推荐