У меня есть модель, которая создает Memo
объектов.Я хотел бы использовать метод posted
пользовательского Диспетчера моделей, чтобы вернуть общее количество объектов Memo - затем использовать это число в шаблоне .Я пытаюсь сохранить как можно больше своего кода в моих моделях и менеджерах моделей, а меньше - в своих представлениях, поскольку я читал, что это было наилучшей практикой в «Два совка Джанго».
В оболочке, которую яможно получить количество записок как таковое:
>>> from memos.models import Memo
>>> Memo.objects.all()
<QuerySet [<Memo: Test Memo 2>, <Memo: Test Memo 1>]>
>>> Memo.objects.all().count()
2
Вот так выглядит мой Менеджер моделей и моделей:
class MemoManager(models.Manager):
use_for_related_fields = True
def posted(self):
return self.count()
class Memo(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
date_time = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
objects = MemoManager()
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('memos-detail', kwargs={'pk': self.pk})
Я знаю, что это явно неправильный способ сделать это, ноЯ запутался здесь.Итак, как мне использовать Диспетчер моделей, чтобы получить количество объектов и использовать его в шаблоне, например: {{ objects.all.count }}
?
PS Я вижу другие публикации, в которых показано, как это сделать в представлении, но, как указано, япытаюсь не использовать вид.Требуется ли использование вида?Я также понимаю, что мой posted
метод написан неправильно.