Skip to main content

Render the content of a specific block tag from a Jinja2 template.

Project description

django-jinja-render-block

pypi

This project aims to bring the super ergomomic partial template rendering of django-template-partials to django-jinja. It's a bit more limited in scope though: instead of allowing you to define reusable (inline) template partials using {% partialdef partial-name %}, it limits itself to rendering a block within a template, ala django-render-block.

TL;DR: you can render just a block using a template name such as template-name.jinja#block-name.

Installation

uv add django-jinja-render-block

Then use its template backend, instead of the one from django-ninja:

TEMPLATES = [
    {
        "BACKEND": "render_block.backend.Jinja2", # <- instead of "django_jinja.jinja2.Jinja2"
        "DIRS": [],
        "APP_DIRS": True,
        "OPTIONS": {
            # ...
        },
    },
]

Usage

Define a block in your Jinja template:

{% extends "base.jinja" %}

{% block body %}
<h1>HOME</h1>

{% block test-partial %}
<p>Partial block content</p>
{% endblock %}

<p>Lorum ipsum</p>
{% endblock %}

And in your view code you use the template name plus the partial block name, like so:

class ExamplePartialView(TemplateView):
    template_name = "example.jinja#test-partial"

This is extremely useful in combination with HTMX:

def example_view(request):
    template_name = "example.jinja"
    if request.htmx:
        template_name += "#test-partial"

    return TemplateResponse(request, template_name)

request.htmx comes from django-htmx

Thanks to

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_jinja_render_block-0.3.0.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_jinja_render_block-0.3.0-py3-none-any.whl (4.0 kB view details)

Uploaded Python 3

File details

Details for the file django_jinja_render_block-0.3.0.tar.gz.

File metadata

File hashes

Hashes for django_jinja_render_block-0.3.0.tar.gz
Algorithm Hash digest
SHA256 18adab8ca59bfcb366ac335d30159c238b44b4b1b146fa9d7d742df5c1e45971
MD5 68a40d60ea53ad44417b608ebfc094de
BLAKE2b-256 bfa65f0c1b70f44b919cea589dc523526f44b213568c3e88e1c078c8d1247796

See more details on using hashes here.

File details

Details for the file django_jinja_render_block-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_jinja_render_block-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2190165c4aa5a341a67d87f1cf039902fcc8a982c5a9ed624385c97815ed86db
MD5 afbe4e71f2eef72c32953ceb6444b6c3
BLAKE2b-256 dcf55f868aca7772b42252a08953ba2bc80d8352174590962f7cdb6ffd67dfd9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page