Django模板:有条件地添加部分

时间:2009-07-13 17:31:23

标签: python django django-templates

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

  1. 姓名和类似数据
  2. 有关当前治疗的数据
  3. ..及以上:关于任何其他分析的具体数据(例如TAC,核磁共振,心脏,血液等)
  4. 假设对于第3点的每个条目,我需要提供一个特定的部分。 此页面的模板可能看起来像一长串if语句,每个数据条目一个,只有在存在该信息时才会使用。这将导致一个非常长的模板。

    一种可能的解决方案是在模板中使用include指令,然后对主模板进行分段,以便代替if'列表包含一个包含列表,每个{ {1}}。

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

2 个答案:

答案 0 :(得分:2)

请参阅此示例:http://www.djangosnippets.org/snippets/1057/

基本上,您可以遍历模板中的模型字段。

我假设您只想显示所有这些不同字段中的数据是否正确?循环遍历每个字段应该可以为您提供所需的结果。

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

答案 1 :(得分:1)

对此的答案很大程度上取决于你如何构建数据,你没有说 - 在单独的相关表,子类模型,同一模型中的单个字段中是额外的信息位......?

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