我有时会在模板中使用模型实例。例如,在下面的模型中,我可以使用{{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
答案 0 :(得分:0)
我发现如果你需要渲染一个与datetimefield相关联的文本字符串,你可以使用与pytz相关的.astimezone()方法。这有助于很多情况,包括上面的情况。