使用http(带有esi或hinclude)或直接呈现,将django视图包含为其他django视图的子部分。
django_includes的Python项目详细描述
实验软件。没有测试,没有文档,使用它是你自己的风险(或者没有)。
目前只对django 2和python 3.5+进行测试,这将是唯一受支持的目标。
安装
- 在已安装的应用程序中添加“django_includes”。
- 将DjangoIncludesExtension添加到Jinja2环境。
fromdjango_includes.jinja2importDjangoIncludesExtensiondefenvironment(**options):env=Environment(**options)# your logic hereenv.add_extension(DjangoIncludesExtension)returnenv
- 在模板中使用{{render_sync(请求,'mused.views.musicGroupListView',musicgenre=object)}。
现在,这只是“同步渲染”
安装hinclude
如果您想使用hinclude(一个异步加载页面某些部分的简单javascript):
将hinclude url添加到项目:
fromdjango_includes.viewsimportinclude_viewurlpatterns+=[path('hinclude/<token>',include_view,kwargs={'via':'hinclude'},name='hinclude')]
将hinclude添加到布局中
<htmllang="en"xmlns:hx="http://purl.org/NET/hinclude"><head><scriptsrc="{{ static('hinclude.js') }}"></script>
- 在模板中使用{{render hinclude(请求,'mused.views.musicGroupListView',musicgenre=object)}。
注意,这将使用json web令牌对参数进行编码,使用django机密作为加密的“种子”。