【问题标题】:django datetimefield: __str__ give different time from admin displaydjango datetimefield: __str__ 给出与管理员显示不同的时间
【发布时间】:2017-10-27 22:59:36
【问题描述】:

我正在尝试设置 str() 以在管理站点中显示日期时间字段。但它给了我不同页面的不同时间。 代码如下:

class Order(models.Model):
    order_date = models.DateTimeField(auto_now_add = True,null=True)
    def __str__(self):
        return self.product.name + \
        " ordered on " + \
        str(self.order_date.strftime("%Y%m%d-%H:%M:%S"));

它在 My_model 列表中给出类似 20171027-22:28:40 的时间。但是,“2017 年 10 月 27 日下午 3:28”如果我点击进入作为图片的条目,则会显示。
enter image description here
enter image description here

【问题讨论】:

  • 你有什么问题。你希望它是什么格式?
  • 是 20171027-22:28:40 和 2017 年 10 月 27 日下午 3:28同一时间?
  • 我猜一个有时区,一个没有时区。您应该将时区添加到格式字符串中以查看。

标签: python django datetime strftime


【解决方案1】:

你覆盖的方法__str__ 是针对整条记录,而不是显示例如“订单:id”您定义的将要获取的表示。

所以,第一个解决方案是,你可以在 setting.py 文件中输入这个

from django.conf.locale.en import formats as en_formats
from django.conf.locale.fr import formats as fr_formats
#....

en_formats.DATETIME_FORMAT = "%Y-%m-%d-%H:%M:%S" 
fr_formats.DATETIME_FORMAT = "%Y-%m-%d-%H:%M:%S" 

【讨论】:

    猜你喜欢
    • 2015-08-09
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    • 2011-09-17
    • 2017-07-28
    • 2016-01-13
    相关资源
    最近更新 更多