django模板中的{%include%} vs {%extends%}

时间:2010-05-19 07:48:18

标签: django include django-templates

何时特别扩展模板以及何时使用包含?是否包含对用户个人资料部分等内容的任何使用(就像我们网站一角的关于我一样)?

3 个答案:

答案 0 :(得分:49)

扩展允许您从父模板替换块(例如“内容”),而不是包括构建页面的部分(例如“标题”和“页脚”)。这允许您拥有一个包含完整布局的模板,并且您只需通过替换块来“插入”另一个模板的内容。

如果在所有页面上都使用了用户配置文件,您可能希望将其放在基本模板中,该模板由其他人扩展或包含在基本模板中。如果您只想在非常少的页面上使用用户配置文件,则还可以将其包含在这些模板中。 如果用户配置文件除了在几个页面上相同之外,请将其放在块中的基本模板中,然后可以在需要不同配置文件的模板中替换它们。

答案 1 :(得分:3)

请参阅django template inheretance

扩展'包含'父模板的类型,然后可以覆盖其中的部分内容以实现不同的功能。

包含是否包含在当前上下文中呈现模板。

答案 2 :(得分:0)

扩展创建“父子关系”。在扩展的情况下,有可能会覆盖父功能。虽然include仅呈现html响应。