HTML не воспринимает Bootstrap и не объединяется

Я создаю страницу, которая позволяет пользователю отфильтровать набор данных, нажать кнопку поиска и увидеть обновление результатов ниже. Всякий раз, когда я обновляю свою функцию недели на pick_list.html вместо filter_list.html, я получаю приведенную ниже ошибку. Мой filter_list.html не показывает никаких визуальных эффектов bootstrap или цветов из остальной части моего приложения, просто обычный список. В файле pick_list.html отображается кнопка поиска, но нет полей поиска и ноль данных.

Почему мне так трудно совместить эти два понятия?

views.py:

def week(request):
    #orders = Pick.objects.get(id=pk_test)
    orders = Pick.objects.all()
    #orders = week.order_set.all()
    myFilter = PickFilter(request.GET, queryset=orders)
    orders = myFilter.qs
    context = {'week':week, 'orders':orders, 'myFilter':myFilter}
    return render(request, 'app/filter_list.html',context)

pick_list.html:

{% extends 'base.html' %}
{% load cms_tags %}
{% block title %} {{ title }} · {{ block.super }} {% endblock title %}
{% block content %}    

<div style="font-size:24px">
  {{ title }}
</div>

<div style="font-size:14px; margin-bottom:15px">
  Click on the arrows on the right of each contestant and drag them up or down to reorder them based on how far you think they are going to go. 
</div>

<form method="get">
  {{ myFilter.form }}
  <button type="submit">Search</button>
</form>
<ul>

<table class="table table-hover" id="table-ajax" style="background-color: white;">
  <thead  style="background-color: #de5246; color:white; border-bottom:white">
    <tr>
      {% comment %} <th></th> {% endcomment %}
      <th style="width: 50px; text-align: center;"></th>
      <th>{{ object_list|verbose_name:'field:name' }}</th>
      <th>{{ object_list|verbose_name:'field:hometown' }}</th>
      <th>{{ object_list|verbose_name:'field:occupation' }}</th>
      <th>{{ object_list|verbose_name:'field:age' }}</th>
      <th>Progress</th>
      <th style="width: 160px; text-align: center;">Rank</th>
    </tr>
  </thead>
  <tbody class="order" data-url="{% url 'cms:reorder' model_name %}">
    {% include 'app/filter_list.html' %}
  </tbody>
</table>


{% endblock %}

filter_list.html:

{% load static %}
{% load cms_tags %}



{% for order in orders %}

<tr id="{{ order.id }}">
    <td><img src="http://127.0.0.1:8000/media/files/{{ order.photo }}" width="50"/></td>
    <td><a href="" title="Leads" style="text-decoration: none">{{ order.name }}</a></td>
    <td>{{ order.hometown }}</td>
    <td>{{ order.occupation }}</td>
    <td>{{ order.age }}</td>
    <td>
        <div class="progress">
            <div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="{{ order.age }}" aria-valuemin="0" aria-valuemax="100" style="width: 75%"></div>
        </div>
    </td>
    <td style="text-align: center;">
        <a href="" class="btn btn-sm border-0 reorder" title="Reorder">
            <i class="fa fa-sort text-secondary"></i></a>
    </td>
</tr>
{% empty %}
<tr class="table-warning nosort">
    <td colspan="100%" class="text-center"><small class="text-muted">No {{ model_verbose_name_plural|lower }}</small>
    </td>
</tr>
{% endfor %}
<tr class="table-light table-sm nosort">
    <td colspan="100%"><small class="text-muted">Total rows: {{ orders.count }}</small></td>
</tr>

error:

Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/picks/filter/

Django Version: 3.2.6
Python Version: 3.8.7
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'account',
 'cms',
 'app',
 'widget_tweaks',
 'django_cleanup',
 'bootstrap_datepicker_plus']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']


Template error:
In template C:\Users\New User\Downloads\django-modal-ajax-crud-main\django-modal-ajax-crud-main\templates\base.html, error at line 0
   'str' object has no attribute '_meta'

В файле pick_list.html отображается кнопка поиска, но нет полей поиска и ноль данных.

Это происходит, вероятно, потому, что когда вы включаете filter_list.html в ваш шаблон pick_list.html, переменная orders имеет значение None. Поэтому, когда вы достигаете цикла for в filter_list.html, он не выполняется, поэтому не возвращает никаких результатов.

Мой filter_list.html не показывает никаких визуальных эффектов bootstrap или цветов из остальной части моего приложения, просто обычный список.

Вероятно, это происходит потому, что в представлении week вы возвращаете filter_list.html напрямую, а внутри этого шаблона вы не расширяете base.html, поэтому стили bootstrap не применяются.

у объекта 'str' нет атрибута '_meta'

Эта ошибка возникает в Django, когда вы пытаетесь выполнить операцию модели над строкой, а не над реальным экземпляром модели. Попробуйте распечатать контекст представления и посмотреть, передаете ли вы модели или строки.

Итак, как же это можно исправить? Попробуйте воспользоваться этим учебником: https://openfolder.sh/django-tutorial-as-you-type-search-with-ajax

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