在下面的例子中使用两个破折号__year的作用是什么?我是学django的新手



获取今年发布的问题

>>> from django.utils import timezone
>>> current_year = timezone.now().year
>>> Question.objects.get(pub_date__year=current_year)
<Question: What's up?>

这是__year查找[Django-doc],因此它会过滤pub_dateyear。因此,这意味着您将在当前年份(2021(使用pub_date检索问题。

由于您使用.get(…)[Django-doc],这意味着如果不存在此类Question,或者如果存在多个此类Question,它将引发错误。您应该使用.filter(…)[Django-doc]来检索当年(2021(发布的所有Question,因此这是一个可以包含、一个或项的集合。

最新更新