Проблема с кверисетом Django CBV
это моя модель
class Post(models.Model):
author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
title = models.CharField(max_length=256)
text = models.TextField()
create_date = models.DateTimeField(auto_now_add=True, auto_now=False)
published_date = models.DateTimeField(blank=True, null=True)
def __str__(self):
return f'{self.author} --> {self.title}'
def get_absolute_url(self):
return reverse('blog:post_detail', kwargs={'pk': self.pk})
def publish(self):
self.published_date = timezone.now()
self.save()
def unpublish(self):
self.published_date = None
self.save()
и я зарегистрировал его в Django admin. Я создал два поста в Django admin, новый пост, когда я публикую его и нажимаю кнопку now и обновляю страницу, он не показывает этот пост:
вот такой вид:
Как вы можете видеть результат запроса1, запрос2 отличается от запроса3.
Я думаю, что это ошибка, если это не так, пожалуйста, осветите меня.
на него ответил Iain Shelvington в комментарии:
Атрибут класса queryset, определенный в PostListView, создается один раз при запуске вашего приложения, оно всегда будет фильтровать, используя значение
.timezone.now()на момент запуска вашего приложения. Чтобы проверить это, попробуйте перезапустить ваше приложение после публикации и посмотрите, изменится ли результат
