【问题标题】:How to compare DateTimeField with timezone.now()如何将 DateTimeField 与 timezone.now() 进行比较
【发布时间】:2021-02-13 08:27:33
【问题描述】:

我是 python/django 的新手,我有一个事件应用程序,用户可以在其中查看组织即将发生的事件,但我不知道如何只显示未来的事件而忽略过去的事件。

models.py

class Event(models.Model):
    title = models.CharField(max_length=500)
    description = RichTextField()
    start_date = models.DateTimeField()
    end_date = models.DateTimeField()
    created_date = models.DateTimeField(auto_now_add=True)
    author = models.ForeignKey(NewUser, on_delete=models.CASCADE)

views.py

class ShowEventsListPageView(ListView):
    model = Event
    template_name = 'registration/user_events.html'

    def get_queryset(self, *args, **kwargs):
        user = self.kwargs['pk']
        return Event.objects.filter(author=user).annotate(Event.end_date > timezone.now()).order_by('-start_date')

此代码返回 '>' 在 'DeferredAttribute' 和 'datetime.datetime' 的实例之间不受支持

【问题讨论】:

    标签: python django


    【解决方案1】:

    greater than (gt) 查找用于过滤字段大于值的查询集

    Event.objects.filter(
        author=user,
        end_date__gt=timezone.now()
    ).order_by('-start_date')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-29
      • 2020-10-04
      • 2017-06-28
      • 1970-01-01
      • 2013-08-18
      • 1970-01-01
      • 2013-04-05
      • 2013-11-20
      相关资源
      最近更新 更多