从dateutil's rrule的源代码中,我注意到类__str__
已定义了自己的my_rrule
方法。因此,如果我创建rrule
的实例str(my_rrule)
并调用In [1]: from dateutil.rrule import *
In [2]: my_rrule = rrule(DAILY, count=2)
In [3]: str(my_rrule)
Out[3]: '<dateutil.rrule.rrule object at 0x7f97afed29d0>'
,它会调用该方法。但是,情况似乎并非如此:
__str__
我希望看到类似于源代码中所描述的内容,即&#34;如果传递给rrulestr&#34;将生成此RRULE的字符串。我如何调用特定于班级的&#39; from django.db.models import Count
queryset = Order.objects.annotate(
num_suborder1=Count('suborder1', distinct=True),
num_suborder2=Count('suborder2', distinct=True),
)
方法代替&#39;默认&#39;一个?
答案 0 :(得分:2)
更新回答
正如Blckknight所指出的那样,在我没有使用最新版本的dateutil
之前,在撰写本文时就是2.6.0。使用最新版本,字符串包含重建rrule
:
In [1]: from dateutil.rrule import *
In [2]: my_rrule = rrule(DAILY, count=2)
In [3]: str(my_rrule)
Out[3]: 'DTSTART:20161124T123554\nFREQ=DAILY;COUNT=2'
In [4]: import dateutil
In [5]: dateutil.__version__
Out[5]: '2.6.0'
旧(不正确)回答
http://dateutil.readthedocs.io/en/stable/_modules/dateutil/rrule.html#rrule上的源代码似乎来自较早版本的rrule
。我下载了dateutil 2.0的源代码,并在rrule.py
中搜索了__str__
,但没有找到任何结果(见下文)。
P.S。以下是我所指的文档中__str__
的定义: