1

我有时会在模板中使用模型实例。例如,在下面的模型中,我可以使用 {{ leg }},我希望它会在 def unicode (self): 部分中显示信息。然而,时区使事情变得复杂。有没有办法让我的 def unicode (self): 当模型实例嵌入到带有模板标签的模板中时,参数可以感知时区?现在,它强制字符串(这是我的默认时区)的感知 unicode 日期表示,但这对用户没有意义。

class Leg(models.Model):
    startpoint = models.CharField(max_length=50)
    endpoint = models.CharField(max_length=50)
    drive_date_time = models.DateTimeField(verbose_name='Start date and time', blank=True, null=True)
    riders = models.ManyToManyField(Rider, blank=True)
    drivers = models.ManyToManyField(Driver, blank=True)
    carpool = models.ForeignKey(Carpool,  blank=True, null=True)
    open_to_prefs = models.BooleanField(default=True)

    class Meta:
        ordering = ['drive_date_time']
        verbose_name = 'Drive leg'

    def __unicode__(self):
        return  str(self.drive_date_time)  + ' | to: ' + self.endpoint
4

1 回答 1

0

我发现如果你需要渲染一个与 datetimefield 关联的文本字符串,你可以使用 pytz 关联的 .astimezone() 方法。这在很多情况下都有帮助,包括上述情况。

于 2012-04-26T14:35:29.533 回答