我刚开始使用django进行开发。目前,我有以下问题:我必须编写一个能够表示不同类别数据的页面模板。例如,假设我有患者的病历。有关该患者的代表信息例如是:
假设对于第3点的每个条目,我需要提供一个特定的部分。
此页面的模板可能看起来像一长串if
语句,每个数据条目一个,只有在存在该信息时才会使用。这将导致一个非常长的模板。
一种可能的解决方案是在模板中使用include
指令,然后对主模板进行分段,以便代替if
'列表包含一个包含列表,每个{ {1}}。
出于好奇,我想知道是否有人知道这种模式的替代策略,无论是在模板级别还是在视图级别。
答案 0 :(得分:2)
请参阅此示例:http://www.djangosnippets.org/snippets/1057/
基本上,您可以遍历模板中的模型字段。
我假设您只想显示所有这些不同字段中的数据是否正确?循环遍历每个字段应该可以为您提供所需的结果。
或者,您可以通过在那里添加条件来设置要在视图中显示的内容。它会使您的视图功能更加混乱,但会清理模板。该视图还可以更容易地测试某些部分的存在。
答案 1 :(得分:1)
对此的答案很大程度上取决于你如何构建数据,你没有说 - 在单独的相关表,子类模型,同一模型中的单个字段中是额外的信息位......?
通常,这听起来像模板标签的工作。我可能会编写一个自定义标记,将您的父对象作为参数,并检查数据以确定要输出的内容。每个选项都可能由不同的子模板呈现,由标签本身调用。