简体   繁体   English

此日期检查是否更简洁?

[英]Is there a more succinct for this date checking?

Every invoice may have several items and the invoice due date is the date of the earliest due item. 每个发票可能有多个项目,发票到期日是最早到期的日期。 Here's what I have but I wonder if there may be a shorter version: 这是我所拥有的,但是我想知道是否可能有一个较短的版本:

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

Have you tried min ? 您尝试过min吗?

due_date = min((item.due_date for item in i.item_set.all()))

Or, another option: 或者,另一个选择:

from operator import attrgetter
due_date = min(i.item_set.all(), key=attrgetter("due_date")).due_date

Hope that helps. 希望能有所帮助。

由于您使用的是Django,因此可以这样操作:

invoice_date = i.item_set.order_by('due_date')[0].due_date

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM