如何将 Django Admin 中的 DateTimeField 格式化为本地时间?

2024-05-21

如何根据本地时间和时区在管理中格式化日期时间字段?

我的设置.py:

    TIME_ZONE = 'Europe/Bratislava'
    LANGUAGE_CODE = 'en-us'
    USE_I18N = True
    USE_L10N = True
    USE_TZ = True

pytz 软件包已安装。

model:

class Material(models.Model):
    category = models.ForeignKey(Category, null=True, blank=True) 
    code = models.CharField(max_length=10)
    description = models.CharField(max_length=30, blank=True, null=True)
    modified = models.DateTimeField(auto_now=True)
    created = models.DateTimeField(auto_now_add=True)

还尝试了设置中的一些日期格式,这些都没有改变日期时间对象在管理列表显示中转换为字符串的方式:

DATETIME_FORMAT = 'd N Y'
DATE_FORMAT = 'd N Y'

在数据库中,日期时间存储正确,“2012-11-20 08:57:15.901341+01”。但在admin中显示时,始终是UTC。

我可以在 ModelAdmin 中准备方法来处理格式,但这并不是真正的 DRY,因为我希望我的管理类看起来像这样:

from django.utils.timezone import localtime

class MaterialAdmin(admin.ModelAdmin):
    list_display = ('code', 'modified_local', 'created')

    def modified_local(self, row):
        return localtime(row.modified)
    modified_local.admin_order_field = 'modified'
    modified_local.short_description = 'Modified'

你问题的答案是正确配置settings and formats在 Django 项目中。示例项目的结构:

.
|-- README.md
|-- demo.db
|-- demo_time_set
|   |-- __init__.py
|   |-- demo.db
|   |-- formats
|   |   |-- __init__.py
|   |   `-- en
|   |       |-- __init__.py
|   |       `-- formats.py
|   |-- settings.py
|   |-- urls.py
|   `-- wsgi.py
|-- manage.py
|-- requirments.txt
`-- some_app
    |-- __init__.py
    |-- admin.py
    `-- models.py

您只需提供具有适当名称和内部formats.py 的目录即可为多种语言定义它。 示例内容为formats.py所有魔法发生的地方如下所示:

# HERE FORMATING AS shown in:
# LIST: https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
DATE_FORMAT = 'd-m-Y'
TIME_FORMAT = 'H:i'
DATETIME_FORMAT = 'd-m-Y H:i'
YEAR_MONTH_FORMAT = 'F Y'
MONTH_DAY_FORMAT = 'F j'
SHORT_DATE_FORMAT = 'm/d/Y'
SHORT_DATETIME_FORMAT = 'm/d/Y P'
FIRST_DAY_OF_WEEK = 1

# BUT here use the Python strftime format syntax,
# LIST: http://docs.python.org/library/datetime.html#strftime-strptime-behavior

DATE_INPUT_FORMATS = (
    '%d-%m-%Y',     # '21-03-2014'
)
TIME_INPUT_FORMATS = (
    '%H:%M:%S',     # '17:59:59'
    '%H:%M',        # '17:59'
)
DATETIME_INPUT_FORMATS = (
    '%d-%m-%Y %H:%M',     # '21-03-2014 17:59'
)

DECIMAL_SEPARATOR = u'.'
THOUSAND_SEPARATOR = u','
NUMBER_GROUPING = 3

请注意评论中的两个链接,它们将引导您找到正确配置的列表,这些配置对于不同的部件是不同的!

In your settings.py只需添加:

FORMAT_MODULE_PATH = 'demo_time_set.formats'

[GITHUB] 这是一个完整的工作示例:https://github.com/andilab/demo_time_set https://github.com/andilab/demo_time_set

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Django Admin 中的 DateTimeField 格式化为本地时间? 的相关文章

随机推荐

  • Codeigniter:Base_url 似乎不起作用

    我开发了一个简单的网站 可以从 Twitter 公共时间线获取推文 将其缓存 60 秒等等 我最近将主机从 Hostgator 移至 Mediatemple 我的网站之前在 Hostgator 上运行良好 我的应用程序不使用数据库连接 也不
  • 如何将数据源url查询参数添加为application.properties?

    是否可以添加数据源 url 参数作为额外属性 或者我总是必须将它们作为查询参数直接附加到 url 中 Example spring datasource url jdbc mysql localhost test useSSL false
  • 具有依赖属性的值转换器

    我在实现自定义 DependencyObject 时遇到问题 我需要一个转换器来设置或取消设置绑定属性中的枚举标志 因此 我创建了一个从 FrameworkElement 派生的 IValueConverter 它具有两个 Dependen
  • Chrome 自定义标签 CookieManager

    我有一个应用程序 它使用 cookie 提供授权码 进而获取 OAuth 流的令牌 我查看了 Android 开发人员网站 它说 CookieManager 与 WebView 实例一起使用 这是否意味着 Chrome 自定义选项卡不能使用
  • C# 中的工作百分比

    我有两个值 其中一个是十进制值 和另一个值 该值将计算该小数值的百分比 例如 10 的 60 6 decimal value1 10 decimal percentage 60 textbox1 text mathsum here toSt
  • 用于词性标记的优秀 Java 库是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 Android 中使列表视图中的项目不可点击

    如何使列表视图中的项目无法单击 我在列表视图中获得了主题和项目 但主题和项目的视图相同 项目可单击 但主题不可单击 如何实现这一目标 该列表看起来像 Topic item Topic item item 话题 单击able false 不起
  • 博客上的随机背景图片

    我正在尝试整理某种代码 以随机化我的博主博客上的背景图像 我的编程技能不足 但我愿意尝试建议 我记得在 WordPress 中实现了类似的功能 通过将 php 代码文件存储在图像文件夹中 然后从 CSS 中调用该 php 文件 就像它是图像
  • 将二进制输出从文件输出重定向到 stdout

    我有一个专有的二进制文件 它顽固地接受两个文件作为参数 第一个作为输入 第二个作为输出 我想 构建第一个参数 不创建临时文件 使二进制写入标准输出而不是输出文件 第二个参数 我解决了第一个问题 lt 但不确定第二个参数 我编写了以下脚本 看
  • jQuery 插件,用于带有自动建议的逗号分隔标签的简单输入框

    我正在寻找具有以下功能的 jQuery 插件 它应该显示一个输入框 其中的标签将如下所示 蜜蜂 珠子 胡须 当用户键入标签时 它应该显示一个自动建议框供用户输入 显示应该简单明了 只是纯文本逗号分隔标签 它应该允许包含空格键的标签 例如 有
  • 使用 ransack 在 Rails ActiveAdmin 中自定义过滤器

    我创建了一个 activeadmin 过滤器 在其下拉菜单中具有以下用于过滤表数据的选项 Choice A Choice B Choice C Choice D 我想添加第五个选项 F 它可以选择 B 或 C 即 B 和 C 的结果 Cho
  • nhibernate:读写字符串列表

    我知道我可以使用 nhibernate 读取写入字符串列表 如下所示 HasMany x gt x Attachments KeyColumn RowId Table PostTable Element PostKey 但这会创建一个额外的
  • 如何使用git-svn切换svn分支?

    复制 如何让 git svn 使用特定的 svn 分支作为远程存储库 https stackoverflow com questions 192736 how do i make git svn use a particular svn b
  • HTML 帮助关键字查找

    我无法弄清楚如何进行关键字查找 HH KEYWORD LOOKUP http msdn microsoft com en us library ms670091 VS 85 aspx 在 HTML 帮助中工作 如果我有一个显示如下的索引 M
  • React-Native:如何定义 JavaScript 类

    我正在使用本机反应 我需要定义一个类 class myClass email string name string constructor setUser fbid string token string boolean 我试图在它自己的文
  • 如何在函数内部定义函子

    有时 我需要一些函子助手来操作列表 我尽量将范围保持在本地 include
  • 存档操作顺序的保证

    我想知道文件 文件系统上的操作顺序是否有任何保证 假设我有一个文件foo dat我更新如下 lseek fd pos a SEEK SET write fd data a size a lt Operation A lseek fd pos
  • Android 支持哪些字体文件类型?

    Android 支持哪些字体文件类型 例如与 Typeface createFromAsset 一起使用 我似乎找不到文档中列出 我可以看到一些教程中提到了 TTF 并且这里有人暗示现在也支持 OTF 但是是否有一个完整的列表显示不同 AP
  • 访问运行配置 VM 参数中 eclipse 类路径变量 M2_REPO 的值

    在 eclipse 的运行配置中 为您提供了一组可以在 VM 参数中使用的默认变量 例如container path and env var 我想要访问的是类路径变量 M2 REPO 但看不到这样做的方法 我需要在 VM 参数中指定 jav
  • 如何将 Django Admin 中的 DateTimeField 格式化为本地时间?

    如何根据本地时间和时区在管理中格式化日期时间字段 我的设置 py TIME ZONE Europe Bratislava LANGUAGE CODE en us USE I18N True USE L10N True USE TZ True