我想我有一个关于更好的代码组织的简单问题。
假设我有多个应用程序也实现了这些应用程序应如何在表示层上表示。
如果我需要在一个页面上呈现多个应用程序而不使用框架,我想了解如何组织代码?
快速示例:假设我有两个应用程序(app1 和 app2)都实现了它们对应的模型和视图。现在我需要我的索引页来包含这两个视图的介绍。我如何实现仍然使用应用程序视图而不是直接访问它们的模型的通用视图?我希望我的应用程序仍然可以控制它的视图。
谢谢
我想我有一个关于更好的代码组织的简单问题。
假设我有多个应用程序也实现了这些应用程序应如何在表示层上表示。
如果我需要在一个页面上呈现多个应用程序而不使用框架,我想了解如何组织代码?
快速示例:假设我有两个应用程序(app1 和 app2)都实现了它们对应的模型和视图。现在我需要我的索引页来包含这两个视图的介绍。我如何实现仍然使用应用程序视图而不是直接访问它们的模型的通用视图?我希望我的应用程序仍然可以控制它的视图。
谢谢
我认为您可以使用render_to_string快捷方式因此在应用程序视图中您放置:
render_to_string(somestuff) # instead of render() or render_to_responce()
然后在索引视图中是这样的:
render(request, 'index.html', {'block1': view1(request), 'block2': view2(request)})
PS:在我写完这篇文章之后,它看起来不太好(它在我的脑海中看起来更好:))。
好问题,我告诉你我是怎么做到的。
我使用(特定于应用程序的)自定义模板标签。这些模板标签将额外的内容放入上下文中,您可以在模板中使用这些内容。您可以从文档中阅读有关自定义模板标签的更多信息。
有一本好书,Practical django Projects 2nd edition,我认为它有点过时了,但让你对项目组织有了很好的了解。