每张发票可能有多个项目,发票到期日是最早到期项目的日期。这是我所拥有的,但我想知道是否有更短的版本:
due_date = None
for item in i.item_set.all():
if due_date is None:
due_date = item.due_date
else:
if due_date > item.due_date:
due_date = item.due_date
你试过min
吗?
due_date = min((item.due_date for item in i.item_set.all()))
或者,另一种选择:
from operator import attrgetter
due_date = min(i.item_set.all(), key=attrgetter("due_date")).due_date
希望有帮助。
由于您使用的是 Django,因此您可以这样做:
invoice_date = i.item_set.order_by('due_date')[0].due_date