每张发票可能有多个项目,发票到期日期是最早到期日期的日期。这就是我所拥有的,但我想知道是否有更短的版本:
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
答案 0 :(得分:3)
您是否尝试过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
希望有所帮助。
答案 1 :(得分:3)
由于你正在使用Django,你可以这样做:
invoice_date = i.item_set.order_by('due_date')[0].due_date