Результаты поиска не отображаются в шаблоне (Django)

Я очень новичок в Django и создаю очень простой проект. Однако, "поисковая" часть моего проекта имеет некоторые проблемы. Каждый раз, когда я пытаюсь выполнить поиск, он перенаправляет меня на шаблон поиска, но не показывает данные из базы данных. Нет сообщения об ошибке. Вот мой код...

models.py

class Userprofile(models.Model):
    use_id = models.IntegerField()
    first_name = models.CharField(max_length = 50)
    last_name = models.CharField(max_length = 50)
    position = models.CharField(max_length = 50)
    email = models.CharField(max_length= 100)
    password = models.CharField(max_length= 100)

    def __str__(self):
        return self.first_name

account_list.html Это шаблон, в котором находится строка поиска

        <div class="search">
            <form method="post" action="{% url 'account_search' %}" autocomplete="off">
                <br>
                {% csrf_token %}
                <input type="text" name="acc_search" placeholder="Search Account">
                <input type="submit" name="submit" value="Search" style="width: 24%"></p>
            </form>
        </div>
        <hr>

views.py

def account_search(request):
    if request.method == "POST":
        account_search = request.POST.get('acc_search')
        accounts = Userprofile.objects.filter(use_id__contains=account_search) | Userprofile.objects.filter(first_name__contains=account_search) | Userprofile.objects.filter(last_name__contains=account_search) | Userprofile.objects.filter(position__contains=account_search) | Userprofile.objects.filter(email__contains=account_search)
        return render(request, 'core/account_search.html', {'account_search': account_search, 'accounts':accounts})
    else:
        return render(request, 'core/account_search.html', {})

account_search.html `

        {% if account_search %}

        <div class="main-right">
            <div class="h-1">
                <h1>'{{ account_search }}' in Accounts</h1>
            </div>

            <table rules="all" style="border: 1px">
                <thead>
                    <td>Personnel's ID</td>
                    <td>Name</td>
                    <td>Position</td>
                    <td>Email</td>
                    <td>Action</td>
                </thead>
                <tbody>
                    {% for userprofile in userprofiles %}
                        <tr>
                            <td>{{ userprofile.use_id }}</td>
                            <td>{{ userprofile.first_name }}
                                {{ userprofile.last_name }}</td>
                            <td>{{ userprofile.position }}</td>
                            <td>{{ userprofile.email }}</td>
                            <td class="action_btn">
                                <a href="account_edit/{{ userprofile.id }}" class="edit_btn">Edit</a>
                                <a href="account_delete/{{ userprofile.id }}" class="delete_btn">Delete</a>
                            </td>
                        </tr>
                    {% endfor %}
                </tbody>
            </table>
        </div>

        {% else %}
            <h1 class="h1-else">You forgot to enter the text in the input box.</h1>

        {% endif %}

Я искал в Google и пытался, но не могу найти никакого решения или обсуждения того, как я могу это исправить.

Надеюсь, кто-нибудь сможет мне помочь, спасибо. И извините за мой плохой английский.

Вы передаете accounts в качестве контекстной переменной из представления, но в шаблоне вы выполняете цикл через userprofiles. Следовательно, измените эту строку в шаблоне:

{% for userprofile in userprofiles %}

to

 {% for userprofile in accounts %}

Вы передаете учетные записи как "accounts" в представлении, но ищете "userprofiles" в шаблоне. Вы должны использовать "accounts" и в шаблоне.

{% for userprofile in accounts %}
Вернуться на верх