无法使用带有django-tables2

问题描述

我正在尝试使用django-tables2显示具有Tool模型的表以及具有DOI作为外键的发布tool模型。

models.py

class DOI(models.Model):
    doi = models.URLField(verbose_name='DOI',max_length=300,default='',blank=True)
    tool = models.ForeignKey('Tool',on_delete=models.SET_NULL,null=True)
...

class Tool(models.Model):
    tool_name = models.CharField(verbose_name='Package Name',max_length=200)
    release_date = models.DateField(verbose_name='Release Date',null=True,blank=False)
...

我可以使表格显示Tool字段,但我也想显示通过doi外键附加到工具的tool字段(请参见上面的代码) 。我尝试使用访问器,但示例不多(Django-tables2: How to use accessor to bring in foreign columns?Django Tables 2 Field Accessor backward relationshipAccessing related models with django-tables2),但我无法使其正常工作。

tables.py

class ToolTable(tables.Table):
   tool_name = tables.Column(linkify=True)
   doi = tables.Column(accessor='doi.doi',linkify=True)
   id = tables.Column(linkify=True,orderable=False)
...

我一直在和访问器一起玩,只是看我是否可以在表中获取任何值,但是没有成功。

doi.doi
doi.tool
doi.tool__tool_name
doi.tool.tool_name
...

我是在尝试(未成功)mixins(https://django-tables2.readthedocs.io/en/latest/pages/table-mixins.html)之后执行此操作的。

tables.py

class DOIS(tables.Table):
   doi = tables.Column(verbose_name='DOI',linkify=True)

   class Meta:
      model = DOI

class ToolTable(DOIS,tables.Table):
   tool_name = tables.Column(linkify=True)
   doi = tables.Column()
   ...
   class Meta:
      model = Tool
   ...

我想我可以在工具模型中使doi成为文本字段,然后在ToolTable类中使用一些delim拆分doi条目,但是似乎访问器或Mixins应该都可以工作...也许我看不到我的失误。

我正在使用django-tables2 2.3.1和django 3.0.5。

非常感谢您的协助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)