Django单行日期时间

2024-04-19 16:35:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我想这样做:

class VenteGroupee(models.Model):
    date_v_debut = models.DateTimeField(
        default=datetime.now,
        editable=True
    )
    date_v_fin = models.DateTimeField(
        default=None,
        null=True,
        editable=True,
        blank=True
    )

    def __str__(self):
        return "{0} - ({1} -> {2})".format(
            self.id,
            DateFormat(self.date_v_debut).format('jS F Y H:i')  if self.date_v_debut else 'Infinity',
            DateFormat(self.date_v_fin).format('jS F Y H:i') if self.date_v_fin else 'Infinity'
        )

但是最后两行很难看(date_v_debutdate_v_fin可能为空,所以我需要检查)。 有没有一个很好的“pythonic”/“djangostic”方法?你知道吗


Tags: selftrueformatdefaultdateifmodelsjs
1条回答
网友
1楼 · 发布于 2024-04-19 16:35:07

您可以创建一个helper函数来格式化日期。你知道吗

def format_date(value)
    return DateFormat(value).format('jS F Y H:i') if value else 'Infinity'

然后__str__方法简化为

def __str__(self):
    return "{0} - ({1} -> {2})".format(
        self.id,
        format_date(self.date_v_debut),
        format_date(self.date_v_fin),
    )

相关问题 更多 >