在 Django 中向查询集添加一个字段
Adding a field to queryset in django
我有一个模型,其字段是日期时间字段 start_time 和 end_time
我要显示在API-start_time,end_time和它们之间的区别
但是,我不想使用 for 或 while 循环来实现这一点,因为它太慢了
如何在不循环
的情况下获得 API 的差异
你可以用差异注释查询集,然后使用ExpressionWrapper
将其转换为DurationField
,从而获得timedelta
个对象:
from django.db.models import DurationField, ExpressionWrapper, F
MyModel.objects.annotate(
time_diff=ExpressionWrapper(
<b>F('end_time')-F('start_time')</b>,
output_field=DurationField()
)
)
从这个查询集产生的MyModel
s将因此有一个额外的属性time_diff
,即包含差异的timedelta
字段在 end_time
和 start_time
之间。
我有一个模型,其字段是日期时间字段 start_time 和 end_time 我要显示在API-start_time,end_time和它们之间的区别 但是,我不想使用 for 或 while 循环来实现这一点,因为它太慢了 如何在不循环
的情况下获得 API 的差异你可以用差异注释查询集,然后使用ExpressionWrapper
将其转换为DurationField
,从而获得timedelta
个对象:
from django.db.models import DurationField, ExpressionWrapper, F
MyModel.objects.annotate(
time_diff=ExpressionWrapper(
<b>F('end_time')-F('start_time')</b>,
output_field=DurationField()
)
)
从这个查询集产生的MyModel
s将因此有一个额外的属性time_diff
,即包含差异的timedelta
字段在 end_time
和 start_time
之间。