Как получить самые последние элементы списка в шаблоне Django? [Дубликат]

Объявлено, но не определено переменная или функция.

Типичным объявлением переменной является

extern int x;

. Поскольку это только объявление, требуется одно определение. Соответствующим определением будет:

int x;

Например, следующее генерирует ошибку:

extern int x;
int main()
{
    x = 0;
}
//int x; // uncomment this line for successful definition

Аналогичные замечания относятся к функциям. Объявление функции без ее определения приводит к ошибке:

void foo(); // declaration only
int main()
{
   foo();
}
//void foo() {} //uncomment this line for successful definition

Будьте осторожны, чтобы выполняемая вами функция точно соответствовала той, которую вы объявили. Например, у вас могут быть несогласованные cv-квалификаторы:

void foo(int& x);
int main()
{
   int x;
   foo(x);
}
void foo(const int& x) {} //different function, doesn't provide a definition
                          //for void foo(int& x)

Другие примеры несоответствий включают

  • Функция / переменная, объявленная в одном пространстве имен, определенное в другом.
  • Функция / переменная, объявленная как член класса, определяемая как глобальная (или наоборот).
  • Тип возвращаемого значения функции, номер и типы параметров и соглашение о вызове не совсем точно согласуются.

Сообщение об ошибке из компилятора часто дает вам полное объявление переменной или функции, которая была объявлена, но не определена. Сравните его с определением, которое вы указали. Убедитесь, что каждая деталь соответствует.

42
задан James Lin 13 December 2013 в 00:33
поделиться

3 ответа

Вы можете передать свой запрос на в обратном порядке :

last_ten = Messages.objects.filter(since=since).order_by('-id')[:10]
last_ten_in_ascending_order = reversed(last_ten)
55
ответ дан Robert Kajic 25 August 2018 в 07:44
поделиться

Если вы хотите, чтобы последние X-записи отсортировались в порядке убывания по id, то я не думаю, что вам нужно , поскольку filter

last_ten = Messages.objects.all().order_by('-id')[:10]

Использование -id будет сортировать по убыванию заказ. Надеюсь, это было полезно !!

11
ответ дан allsyed 25 August 2018 в 07:44
поделиться

Или используйте [::-1] вместо reversed:

last_ten = Messages.objects.filter(since=since).order_by('-id')[:10][::-1]
27
ответ дан Omid Raha 25 August 2018 в 07:44
поделиться
Другие вопросы по тегам:

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