Python 更改视图中的时间字段和日期字段格式
我有一个非常基本的django模型:Python 更改视图中的时间字段和日期字段格式,python,django,Python,Django,我有一个非常基本的django模型: class Day(models.Model): date = models.DateField() class Topic(models.Model): day = models.ForeignKey(Day) time = models.TimeField(choices=CHOICE_TIME) topic = models.CharField(max_length=255) 因此,如果我访问对象的日期和时间,我会得
class Day(models.Model):
date = models.DateField()
class Topic(models.Model):
day = models.ForeignKey(Day)
time = models.TimeField(choices=CHOICE_TIME)
topic = models.CharField(max_length=255)
因此,如果我访问对象的日期和时间,我会得到以下结果:
>>> topic = Topic.objects.all()[5]
>>> print topic.day
2017-03-13
>>>
>>>
>>> print topic.time
14:00:00
我需要在视图中使用2017年4月9日的日期和12小时格式的时间。我怎样才能解决这个问题?我找到的所有答案都是针对django模板的,但我需要在视图中使用它。如果您有
datetime
对象(否则使用字符串制作)
在django中,
DateTimeField
返回datetime
对象(与这里的d_obj
相同)和TimeField
返回datetime.time
对象(与d_obj.time()
相同)。如果您有datetime
对象(否则使用字符串进行设置)
在django中,
DateTimeField
返回datetime
对象(与这里的d_obj
相同)和TimeField
返回datetime.time
对象(与d_obj.time()
相同)。您可以覆盖Day
模型中的方法以返回“%d%B%Y”。格式(…)。对于time
问题,您可以在主题
模型中覆盖初始化
,并设置time=time.strftime(“%I:%M”)
@Wencakisa好的,我会试试。谢谢。您可以在日
模型中重写\uuu str\uuu
方法以返回“%d%B%Y”。格式(…)。对于time
问题,您可以在主题
模型中覆盖初始化
,并设置time=time.strftime(“%I:%M”)
@Wencakisa好的,我会试试。谢谢。show.time.strftime(“%I:%M%p”)
按预期输出。但是我的日期字段是日期字段
,而不是日期时间字段
。因此,show.day.strftime(“%d%B%Y”)
在发布您的day
class.Ok时给出了一个错误day对象没有属性“strftime”。现在您可以执行show.day.date.strftime(“%d%B%Y”)
是的,就是这样。谢谢。show.time.strftime(“%I:%M%p”)
按预期输出。但是我的日期字段是日期字段
,而不是日期时间字段
。因此,show.day.strftime(“%d%B%Y”)
在发布您的day
class.Ok时给出了一个错误day对象没有属性“strftime”。现在您可以执行show.day.date.strftime(“%d%B%Y”)
是的,就是这样。非常感谢。
In [22]: d_obj = datetime.now()
In [23]: d_obj.strftime("%d %B %Y")
Out[23]: '09 April 2017'
In [24]: d_obj.time().strftime('%I:%M %p')
Out[24]: '03:28 PM'