Django MasterDetail视图插件

2024-05-23 18:21:54 发布

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

假设我有3个django应用程序,appCountry,appSocial和appFinancial。在

国家是一个“主导航”应用程序。它在“索引”视图中列出所有国家,并在其“详细信息”视图中显示每个国家的详细信息。在

每个国家的详细信息包括其社交信息(来自社交应用程序)和财务详细信息(来自金融应用程序)。在

社会和金融都有一个详细的看法(每个国家)

是否有一种优雅的方式将这些子细节视图“插入”到国家提供的主细节视图中?因此,对于每个国家的详细信息页面,我会看到2个标签,显示该国的社会和财政细节。在


Tags: django视图信息应用程序方式详细信息国家金融
1条回答
网友
1楼 · 发布于 2024-05-23 18:21:54

2我对此问题使用的常见解决方案:

部分模板:
创建一个用于呈现“社交”和“财务”的模板,该模板不需要视图中的内容,而不是它正在处理的对象(并使用objects函数或模板标记来呈现它)。 然后您可以轻松地{%include%}它(并首先设置所需的变量)。
此部分视图不呈现完整的HTML页面,而只呈现单个DIV或您希望使用的其他HTML元素。如果你还需要一个“只用于社交”的页面,你可以创建一个呈现标题然后包含部分模板的页面。你可以用像_模板.html对于部分模板,以及模板.html对于常规模板。在

AJAX:
使您的“社会”和“财务”视图意识到在XMLHTTPRequest中被调用(请求.is_ajax()). 如果是,则只返回一个DIV元素,而不返回其周围的所有HTML。这样,您的母版页就可以在没有它的情况下呈现,并动态添加这些内容。
AJAX方法有几个优点:你不需要在同一个请求上呈现插件视图,所以如果你有很多这样的插件视图,主页面加载速度会更快,你可以让一个聪明的javascript只选择相关的插件视图来请求。
此外,您可以使用普通视图在模板中生成所需的数据(在Partial Templates方法中无法实现)。在

相关问题 更多 >