django render_partial标记允许将渲染视图插入模板

django-render-partial的Python项目详细描述


安装

  1. pip install django_render_partial
  2. 'django_render_partial'添加到INSTALLED_APPS
  3. 确保'django.template.context_processors.request'TEMPLATES['OPTIONS']['context_processors']

用法

为部分视图编写模板,例如partial_view.html

<p>{{ arg1 }} + {{ arg2 }} = {{ result }}</p>

编写部分视图:

def partial_view(request, *args, **kwargs):
    result = kwargs['arg1'] + kwargs['arg2']
    kwargs['result'] = result
    return render(request, 'partial_view.html', kwargs)

如果使用基于功能的视图,或:

class PartialView(TemplateView):
    template_name = 'partial_view.html'

    def get_context_data(self, **kwargs):
        result = kwargs['arg1'] + kwargs['arg2']
        kwargs['result'] = result
        return super(PartialView, self).get_context_data(**kwargs)

如果使用的是基于类的视图。

将其添加到urls.py

url(r'^partial-view/(?P<arg1>\w+)/(?P<arg2>\w+)/$',
    partial_view,
    name='partial_view'),

或:

url(r'^partial-view/(?P<arg1>\w+)/(?P<arg2>\w+)/$',
    PartialView.as_view(),
    name='partial_view'),

在您的模板中:

{% load render_partial %}
{% with some_var=2 %}
  {% render_partial 'partial_view' arg1=40 arg2=some_var %}
{% endwith %}

render_partial标记将呈现为:

<p>40 + 2 = 42</p>

注意,^{tt8}不需要上面的with标记$ 去工作。它用于显示render_partial接受变量。 除了 任何关键字参数。

如果不想在urls.py中公开部分视图,可以 同时使用完全限定的点分隔视图名称:

{% render_partial 'partial_test.views.PartialView' arg1=40 arg2=some_var %}
{% render_partial 'partial_test.views.partial_view' arg1=40 arg2=some_var %}

important:调用模板必须接收一个名为 request包含原始的HttpRequest。别忘了加上 'django.template.context_processors.request'TEMPLATES['OPTIONS']['context_processors']

改编自https://djangosnippets.org/snippets/1568/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java错误:无法解析方法   如何用相同的父标记和子标记在Java中解析XML?   日期使用Java中的时区偏移将本地时间转换为UTC   java如何在多进程、多线程环境中读取文件   WebView中的java弹出式对话框不在当前显示范围内,但在chrome浏览器中运行良好   只有2个参数的java递归二进制搜索方法   无法在java中调用函数   java JavaMail在Tomcat服务器上运行时停止工作   反射通过java程序生成、编译和运行java类   java Android:如何使ListView即使在应用程序关闭后仍保持禁用状态   在JAVA中识别匿名类实例   java渲染一个由三角形组成的立方体,在旋转时会产生奇怪的角度   函数式编程如何基于比较连续的列表元素将Java流减少为布尔值   java如何替换列表中的多个项目?   java Android如何获取随机sqlite数据?   java我已经将useSSL设置为false,但仍然收到警告   java使用动态变量生成jlabel   apachespark:java。lang.NoClassDefFoundError v2TableWithV1回退