Вы хотите отфильтровать набор запросов и получить счетчик, если штампованная_дата находится в пределах семи дней
Вы будете справедливы, если это стандартное требование для создания менеджера моделей для обработки этого
К чему вы стремитесь. Потому что, сделав это, вы можете вызвать count () в возвращенном наборе запросов.
import datetime
Count.objects.get_stamped_date().count()
Менеджер модели будет выглядеть так:
class CountManager(models.Manager):
def get_stamped_date(self):
todays_date = timezone.now()
seven_days_ago = datetime.timedelta(days=7)
qs = super().get_queryset()
count = qs.filter(start_time__range=[seven_days_ago, todays_date])
return count
Затем обновите свою модель, чтобы включить диспетчер
Count(models.Models):
objects = CountManager()
Честно говоря, ваш stamped_date должен быть атрибутом поля, который должен работать с вашим методом save () вашей модели, так что это немного сбивает с толку, почему вы сделали это именно так. При использовании метода сохранения (стандартного) позвольте экземпляру модели проверять каждый раз, когда нет времени начала, и сохраните ваше поле self.access datetime, которое я не вижу здесь ссылки на поле stamped_date
Также только для вишенка на вершине, возможно, было бы даже лучше позволить аргументу менеджеру модели сказать, сколько дней, чтобы его не фиксировали на семи днях.