我有一堆woods
和一堆properties
,描述了木头。特定木材的属性由Answer
给出(基本上answers
= woods
x properties
):
class Wood(models.Model):
desc = models.CharField(max_length=63)
class Property(models.Model):
desc = models.CharField(max_length=63)
class Answer(models.Model):
desc = models.CharField(max_length=255)
wood = models.ForeignKey('Wood', related_name='answers', null=True, default=None)
property = models.ForeignKey('Property', related_name='answers', null=True, default=None)
现在我想在表格中显示我的数据。每个木材有一行,每个属性有一列。
当我使用第一行作为包含所有属性(property.desc
)的标题和第一列包含所有属性(wood.desc
)时,我的问题就开始了。我找不到从模板中访问给定Answer
和Wood
的{{1}}的方法。这很容易,如果我可以通过键访问字典值,键是变量 - 但据我所知,这在模板中是不可能的。
我确实找到了一种越来越难看的方法:我可以在视图中创建嵌套列表并在模板中遍历它们。我只是依赖于列表项保持有序的事实,因此答案与标题行匹配。创建这个中间列表结构感觉是错误的,而实际数据结构就像这样简单。
我希望有人知道如何直接在模板中映射我的数据结构。