Объект Django Filters 'str' не имеет атрибута '_meta'
Я создаю страницу, которая позволяет пользователю отфильтровать набор данных, нажать кнопку поиска и увидеть обновление результатов ниже. Я получаю следующую ошибку атрибутов: объект 'str' не имеет атрибута '_meta', и я не могу понять, почему это происходит. Любая помощь будет принята с благодарностью
views.py:
from django.shortcuts import render, redirect
from django.urls import reverse_lazy, reverse
from django_filters.views import FilterView
import django_filters
from .models import Book, Lead, File, Pick
from .filters import PickFilter
from .forms import BookForm, LeadForm, FileForm, PickForm
from cms.ajax import (AjaxCreateView, AjaxDetailView, AjaxUpdateView, AjaxDeleteView, AjaxFilesUpload)
from cms.views import CoreListView
from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib.auth.decorators import login_required
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/pick_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>
base.html
error:
Ошибка отслеживания просмотров:
context
{'myFilter': <app.filters.PickFilter object at 0x04CC9FB8>,
'orders': <QuerySet [<Pick: Claire>, <Pick: Elizabeth>, <Pick: Cassidy>, <Pick: Eliza>, <Pick: Daria>, <Pick: Ency>, <Pick: Gabby>, <Pick: Genevieve>, <Pick: Hailey>, <Pick: Hunter>, <Pick: Hunter>]>}
myFilter
<app.filters.PickFilter object at 0x04CC9FB8>
orders
<QuerySet [<Pick: Claire>, <Pick: Elizabeth>, <Pick: Cassidy>, <Pick: Eliza>, <Pick: Daria>, <Pick: Ency>, <Pick: Gabby>, <Pick: Genevieve>, <Pick: Hailey>, <Pick: Hunter>, <Pick: Hunter>]>
request
<WSGIRequest: GET '/picks/filter/'>
Исходя из ошибки, которую вы опубликовали, ответ от вашего представления не HttpResponse
, а str
, и именно по этой причине вы получаете эту ошибку.
Другое дело, я предполагаю, что вы хотите отобразить pick_list.html
, а не filter_list.html
в представлении. Тот факт, что filter_list.html
не расширяет base.html
, говорит о том, что вы получаете ошибку не из этого представления, а из другого представления.