Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更改视图中的时间字段和日期字段格式_Python_Django - Fatal编程技术网

Python 更改视图中的时间字段和日期字段格式

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) 因此,如果我访问对象的日期和时间,我会得

我有一个非常基本的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)
因此,如果我访问对象的日期和时间,我会得到以下结果:

>>> 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'