问题描述
我正在尝试使用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 relationship,Accessing 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 (将#修改为@)