Тип объекта 'Книга' не имеет атрибута 'order_by'

Я получил эту ошибку много раз раньше. И я уверен, что все программисты PHP по крайней мере однажды получили эту ошибку. Чтобы решить эту ошибку, вы можете решить использовать решение по вашему уровню проблемы:

Возможное решение 1:

Возможно, вы оставили пробелы до или после (в конце файла после?>) ie

THERE SHOULD BE NO BLANK SPACES HERE

DO CHECK FOR BLANK SPACES HERE AS WELL; THIS LINE (blank line) SHOULD NOT EXIST.

В большинстве случаев это должно решить вашу проблему. Проверьте все файлы, связанные с файлом require.

Примечание: Иногда EDITOR (IDE), например gedit (редактор linux по умолчанию), добавляет одну пустую строку в файл save save. Этого не должно быть. Если вы используете linux. вы можете использовать редактор VI для удаления пробела / строк после?> в конце страницы.

Если это не ваш случай, тогда вы можете использовать ob_start для буферизации вывода, как показано ниже:

Возможное решение 2:

 

2
задан shafik 5 March 2019 в 17:42
поделиться

2 ответа

Вам необходимо изменить эту строку

new_books = Book.objects.order_by('-book_date')[:4]

на

new_books = Book.objects.order_by('-book_date')[:4]

, потому что order_by доступно в менеджере моделей.

Обновление:

def index(request):
    new_books = Book.order_by('-book_date')[:4]
    bestselling_books = Book.objects.filter(is_best_selling=True)[:4]
    advertises = Advertise.objects.all()
    book_context = {
        'new_books': new_books,
        'bestselling_books': bestselling_books,
        'advertises': advertises
    }

    return render(request, 'pages/index.html', book_context)
0
ответ дан shafik 5 March 2019 в 17:42
поделиться

Книга не имеет атрибута order_by, ее менеджер имеет

Так что вам нужно

Book.objects.order_by
0
ответ дан Sayse 5 March 2019 в 17:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: