Socket
Socket
Sign inDemoInstall

django-render-partial

Package Overview
Dependencies
0
Maintainers
1
Alerts
File Explorer

Install Socket

Detect and block malicious and high-risk dependencies

Install

    django-render-partial

Django render_partial tag allows inserting rendered views into templates


Maintainers
1

Readme

Installation

  1. pip install django_render_partial
  2. Add 'django_render_partial' to INSTALLED_APPS
  3. Ensure that 'django.template.context_processors.request' is in TEMPLATES['OPTIONS']['context_processors']

Usage

Write a template for partial view, e.g. partial_view.html::

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

Write a partial view::

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

if you are using function-based views, or::

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)

if you are using class-based views.

Add it to urls.py::

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

or::

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

In your template::

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

The render_partial tag would be rendered to::

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

Note that the with tag above is not required for render_partial to work. It is used to show that render_partial accepts variables. Every argument will be evaluated against context except for the names of any keyword arguments.

If you don't want to expose your partial view in urls.py, you can also use fully qualified dot separated view name::

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

IMPORTANT: the calling template must receive a context variable called request containing the original HttpRequest. Don't forget to add 'django.template.context_processors.request' to TEMPLATES['OPTIONS']['context_processors'].

Adapted from https://djangosnippets.org/snippets/1568/

Keywords

FAQs


Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc