Как вызвать функцию python из views.py в html-шаблоне

Я новичок в Django Framework и мне нужно закончить проект. Сейчас я застрял на чем-то. Пожалуйста, кто-нибудь помогите мне.

Я переделываю шаблон "borrow.html". В html-коде я хочу вызвать функцию из views.py. Я пробовал так:

Это views.py:

def borrowBook(request):
    return render(request,'app_system_borrow/borrow.html', {'infoBorrowCode': infoBorrowCode()})

def write_read_file():
    filepath='app_system/utils/output_QRscan.txt'
    with open(filepath,'r') as ff:
        file_content=ff.read()
        file_content=file_content.strip()
    return file_content

def infoBorrowCode():
    file_content=write_read_file()
    books=apps.get_model('app_common','Book')
    items_book=books.objects.all()
    for i in items_book:
        if(i.label == file_content):   
            return redirect('info-borrow/')
    return "doesn't exist"    
    

def infoBorrow(request):
    print("dhskld")    
    return render(request,'app_system_borrow/info-borrow.html')

Это borrow.html:

{% extends "base_system.html" %}
{% block title %}CONTILIB{% endblock title %}
{% block content %}
<div class="interaction-container">
    <div class="bot-interaction">
        <p>Please scan the <b>QR code</b> of the book.</p>
    </div>
</div>
{% endblock content %} 
{{ 
    infoBorrowCode
}}

Это urls.py:

urlpatterns = [
    path("favicon.ico",RedirectView.as_view(url=staticfiles_storage.url("img/avicon.ico"))),
    path('', views.borrowBook, name="borrowURL"),
    path('info-borrow/', views.infoBorrow),
]

Я поместил несколько отпечатков в функцию infoBorrowCode() из views.py, чтобы проверить, вызывается ли функция, и она вызывается, но после return redirect('info-borrow/') печать из функции infoBorrow(request) не работает. Она ничего не печатает. Так что, я думаю, моя версия не очень хороша.

Может ли кто-нибудь объяснить, что я делаю не так? Пожалуйста... Или если есть другой вариант для этого...

смотрите здесь (https://docs.djangoproject.com/en/4.1/topics/http/shortcuts/#redirect). но если у вас все еще есть проблемы, пожалуйста, спросите ясно...

Создан файл output_QRscan со следующими записями: aaa,eee. База данных выглядит следующим образом:

enter image description here Когда вызывается представление borrowBook, происходит чтение файла. Данные преобразуются в массив и возвращаются в представление. Затем на основе этого массива выполняется выборка из базы данных и отображается на странице.

views.py

def write_read_file():
    filepath = 'app_system/utils/output_QRscan.txt'
    with open(filepath, 'r') as ff:
        file_content = ff.read()
        file_content = file_content.strip().split(',')
    return file_content


def borrowBook(request):
    arr = write_read_file()
    items_book = books.objects.filter(name__in=arr)

    return render(request, 'app_system_borrow/borrow.html', {'context': items_book})

borrow.html

{% for aaa in context %}
<p>{{ aaa.id }} : {{ aaa.name }}</p>
{% endfor %}

urls.py

urlpatterns = [
      path('borrowbook/', views.borrowBook, name="borrowURL"),
]

Выход

1 : aaa

5 : eee
Вернуться на верх