我正在创建一个视图,该视图仅显示截止日期尚未过去的帖子。为此,我添加了以下views.py文件:

current_posts = Posts.objects.filter(post_name=post, deadline__range=[date.today(), "2999-12-31"]).order_by('deadline')


这样,我只能显示截止日期在今天和2999年12月31日之间的帖子。但是,我收到以下错误消息,根本没有显示任何帖子:

RuntimeWarning: DateTimeField OfferedFunds.deadline received a naive datetime (2999-12-31 00:00:00) while time zone support is active.
  RuntimeWarning)


过去发布的解决方案让我尝试了以下同样不起作用的方法:

timezone.now()
current_posts = Posts.objects.filter(post_name=post, deadline__range=[timezone.now(), "2999-12-31"]).order_by('deadline')


起作用的是,如果我输入的不是“ timezone.now()”,而是输入一个实际的日期,例如“ 2015-10-10”,但这会违反目的。关于如何解决这个问题有什么想法吗?

最佳答案

您可以执行deadline__gte=timezone.now()而不是检查范围

此页面包含更多信息:https://docs.djangoproject.com/en/stable/ref/models/querysets/#gte

08-20 04:35