Если хочешь использовать шаблон то используй render:
from django.shortcuts import render
def index(request):
posts = Post.objects.all().order_by('-date_pub').count()
return render(request, '/путь до шаблона/', {'posts_count': posts})
в шаблоне тогда {{ posts_count }}
У автора по ссылке работало потому что он это делал в джанго шелле, а не пытался все вывести через вьюху. Да и то, что ты написал больше похоже на помесь первого и второго ответа.
Говоря проще:
Post.objects.all() - взять все записи
.order_by('-date_pub') - отсортировать их по полю "date_pub"
.count() - отдать цифру суммы всех полей
=====
Зачем сортировать (менять порядок вывода), если на выходе запрашиваем всёравно не записи, а только цифру количества записей в базе?
Далее
{{ posts.count }} - дублирует .count() и по этому должно вернуть ошибку (пустое), так как .count() уже вернёт просто цифру, к которой пробуем сказать "верни мне цифру суммы".
Syschel, .order_by('-date_pub') мне нужен что бы выводить первыми новые записи. Во views после posts = Post.objects.all().order_by('-date_pub') я добавил posts_count = Post.objects.all().count() и {{ posts_count }} в шаблоне, но он выводит количество страниц
.order_by('-date_pub') мне нужен что бы выводить первыми новые записи.
Зачем тебе сортировать записи, если результатом выполнения всего кода будет ЦИФРА равная сумме всех записей?
Говоря иначе, ты берёшь горсть семечек и начинаешь их зачем-то раскладывать на столе от самой большой к маленькой. То есть сортировать по размеру. После того как ты выложил длинную линию зёрен, ты начинаешь их считать. Результат, то есть ЦИФРУ, ты записываешь на бумажку и кладёшь её на соседний стол. На бумажке только цифра.
Потом ты берёшь бумажку со стола и пробуешь посчитать, а не прочитать уже имеющуюся цифру. Ибо ты ДВАЖДЫ вызываешь count. Естественно у тебя второй вызов возвратить должен НИЧЕГО. Так как он не может считать ЦИФРУ, он мог бы посчитать количество записей и отдать цифру, но ты же уже имеешь именно цифру.
:-D