我已经在Symfony框架中开发了很长一段时间,但现在我必须使用Django,而且我在Symfony中做了类似“组件”或“部分”的操作时遇到了问题。
那就是说,这是我的目标:
我有一个包含许多小部件的网页,所有这些都需要他们的逻辑 - 我想是位于“views.py”中。但是,我如何告诉Django调用所有这些逻辑并将其全部呈现为一个网页?
答案 0 :(得分:3)
听起来你正在寻找的东西就像custom template tags ......
您可以编写自己的一组标记来处理自定义逻辑并返回可以以类似于小部件的方式重用的模板块。
答案 1 :(得分:1)
假设您将在不同页面的不同位置使用组件,我建议您尝试{%include“foo.html”%}。 Django模板语言的(几个)缺点之一是没有宏的概念,所以你需要在传递给主模板的上下文中的值名称中保持一致,以便包含的模板找到它的东西。寻找。
或者,在视图中,您可以为每个组件调用模板引擎,并将结果保存在上下文中传递的值中。然后在主模板中使用上下文中的值。
我不喜欢这些方法中的任何一种。您的模板需求越复杂,您就越想看看Jinja2。 (并且,不,我不会购买关于'模板设计师'的Django Party Line - 从来没有在我的生活中看到过。)