我用于此问题的2个常见解决方案:
局部模板:
创建一个模板来呈现“社交”和“财务”模板,该模板不需要视图中的东西,除了它正在处理的对象之外(并使用对象功能或模板标签进行渲染)。那么您可以轻松地{%include%}它(并先设置所需的变量)。
此局部视图不会呈现完整的HTML页面,而仅呈现您要使用的单个DIV或其他HTML元素。如果您还需要“仅社交”页面,则可以创建一个呈现标题的页面,然后包含部分模板。您可以将_template.html之类的约定用于部分模板,并将template.html之类的用于常规模板。
AJAX:
使您的“社交”和“财务”视图意识到在XMLHTTPRequest(request.is_ajax())中被调用。如果它们是,则它们仅返回DIV元素,而不会包含所有HTML。这样,您的母版页可以在没有它的情况下呈现,并即时添加该内容。
AJAX方式有几个优点:您不会在整个页面的同一请求上呈现插件视图,因此,如果您拥有许多这样的插件视图,则母版页将加载得更快,并且您可以让智能javascript仅选择要求的相关插件视图。
另外,您可以使用普通视图在模板中生成所需的数据(在Partial Templates方法中实际上无法做到)。



