Переменная Django не передается в шаблон

В принципе, что происходит, список user_data не передается в шаблон, не могу понять почему. Есть ли у кого-нибудь идеи, пожалуйста? Когда я использую строку поиска, я просто получаю условие else из шаблона, и он никогда не показывает никакой переменной. Я также пытался создать различные переменные для передачи в шаблон, но ни одна из них не была передана по какой-то причине... Большое спасибо!

Это в моем файле views.py

@login_required(login_url='login_user')
def profiles(request):
    context = {}

    if request.method == "POST":
        data = request.POST.get('search_input')
        if len(data) > 0:
            username_result = NewUser.objects.filter(username__icontains=data).distinct()
            email_result = NewUser.objects.filter(email__icontains=data).distinct()
            user_data = []
            for account in username_result:
                user_data.append((account, False))
            context['usernames'] = user_data

            return render(request, "profiles/search_user.html", context)
         else:
            return render(request, "profiles/profiles.html")
    return render(request, "profiles/profiles.html")

Тогда мой шаблон выглядит следующим образом:

{% extends 'profiles/base.html' %}

{% block title %}One For All{% endblock %}
{% load static %}
<!-- importing css file -->
{% block style %}<link rel="stylesheet" type="text/css" href="{% static 'css/search_user.css' 
%}">{% endblock %}


{% block content %}
    <!-- navigation bar -->
    <div class="navBar">

        <!-- logo and logo spacers -->
        <div class="logo_spacer"></div>
        <div class="logo"></div>

        <!-- Sign Up Button -->

        <a class="homeBtn" href="{% url 'profiles' %}">Home</a>
        {% if is_self %}
            <a class="settingsBtn" href="{% url 'settings' user=user.username %}">Profile Settings</a>
        {% else %}
            <a class="settingsBtn" href="{% url 'user_profile' username=user.username %}">My Profile</a>
        {% endif %}

        <p>Top Menu</p>
    </div>

    <!-- main body of login page -->
    <div class="main">

        {% if user_data %}
            <p>We find users</p>
            {% for account in user_data %}
                <div>
                    <a class="profile-link" href="{% url 'user_profile' username=user.0.username %}">
                        <!--<img class="img-fluid profile-image" src="{{account.0.avatar.url}}" alt="">--></a>
                </div>
            {% endfor %}
        {% else %}
            <p>This is when user_data doesn't exist or doesn't get passed to template: {{ user_data }} </p>
            {{ user_data }}
        {% endif %}
    </div>

    <div class="bottom">

        <p>Bottom</p>
    </div>
{% endblock %}

{% block js_block %}
{% endblock %}

urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('logout/', views.logoutUser, name='logout'),
    path('post/', views.post, name='post'),

    path('', views.profiles, name='profiles'),
    path('search_user/', views.profiles, name='profiles'),
    path('UserProfile/<str:username>/', views.user_profile, name='user_profile'),
    path('Settings/<str:user>/', views.settings, name='settings'),
]

В представлении, которое вы установили:

context['usernames'] = user_data

Но в шаблоне, на который вы ссылаетесь:

        {% if user_data %}
            <p>We find users</p>
            {% for account in user_data %}

user_data не существует в контексте - вам нужно сослаться на usernames вместо этого, или изменить представление, чтобы вызвать его user_data

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