Django模板:有条件地添加节

2024-05-15 21:28:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始使用django进行开发。目前,我有以下问题:我必须编写一个能够表示不同类别数据的页面模板。例如,假设我有一个病人的病历。有关该患者的代表信息包括:

  1. 姓名、姓氏和类似资料
  2. 当前治疗数据
  3. …及其他:关于任何其他分析的具体数据(例如,TAC,NMR,心脏,血液,等等)

假设对于第3点的每个条目,我需要呈现一个特定的部分。 此页面的模板可能看起来像一个长串的if语句,每个数据条目对应一个语句,只有在存在该信息时才会使用这些语句。这将导致一个非常长的模板。在

一种可能的解决方案是在模板中使用include指令,然后对主模板进行分段,这样我就可以得到一个include列表,而不是一个if的列表。在

出于好奇,我想知道是否有人知道这种模式的替代策略,无论是在模板级别还是在视图级别。在


Tags: 数据django患者模板信息列表ifinclude
2条回答

请看这个例子:http://www.djangosnippets.org/snippets/1057/

实际上,您可以在模板中循环模型的字段。在

我假设你只想显示所有这些不同字段中的数据,对吗?在每个字段中循环应该可以为您提供要查找的结果。在

或者,可以通过在视图中添加条件来设置要在视图中显示的内容。它会使你的视图函数更混乱,但会清理模板。该视图还使测试某些部分的存在变得更容易。在

这个问题的答案在很大程度上取决于你是如何组织数据的,你并没有说——额外的信息位是在不同的相关表、子类模型、同一模型上的各个字段中。。。?在

一般来说,这听起来像是模板标记的工作。我可能会编写一个自定义标记,将父对象作为参数,并检查数据以确定输出的内容。每个选择都可能由一个不同的子模板呈现,这个子模板由标记本身调用。在

相关问题 更多 >