Это возможно, но, вероятно, немного хакерски, сложно или сложно.
Я хотел бы предложить создать его так, чтобы у вас была часть рендеринга в функции utils.py и использовать ее в simple_tag вместоinclusion_tag.Таким образом, вы можете легко использовать ту же функцию рендеринга утилит в представлениях.
В моем (очень упрощенном) воображаемом примере у меня есть список пользователей и кнопка «Загрузить еще», которая возвращает больше пользователей.
account / utils.py
from django.template.loader import render_to_string
def render_users(users):
return render_to_string("account/user_list_items.html", {"users": users})
account / templatetags / account_tags.py
from django import template
from ..utils import render_users
register = template.Library()
@register.simple_tag
def list_users(users):
return render_users(users)
account / views.py
from django.http import HttpResponse
from .models import User
from .utils import render_users
def load_more_users(request):
limit = request.GET["limit"]
offset = request.GET["offset"]
users = User.objects.all()[offset:offset + limit]
return HttpResponse(render_users(users))
Простое лучше, чем сложное.