输出时区感知的 django 日期时间字段,无需过滤器

2023-12-12

您好,我升级到 django 1.4,我想利用时区支持,我在 postgres 中保存了一些日期时间字段,并且在我设置后,它们是假设我所在城市的时区保存的

USE_TZ = True

并将时区设置为我的城市,模板中的日期过滤器标签输出正确的小时(时区)

{{ concert.datetime|date:'f' }}

问题是:我使用日期时间来构建我的网址,如下所示:

{% url event artist_slug=concert.slug_name hour=concert.datetime.hour %}

这些时间分区不正确,小时仍然是UTC,这会改变我的链接,这是我无法做到的,它会失去所有页面排名和许多要使用的网站链接,这是不可行的,更不用说它了看起来很奇怪,该网址的时间与广告中的时间不同。 我试过这个:

{% url event artist_slug=concert.slug_name hour=concert.datetime.hour|date:'H' %}

如果不成功,则不会应用日期过滤器标记并引发异常。 我有一个相当大的代码库和很多模板,有没有办法在不使用返回日期时间时区的访问器的情况下解决这个问题?

谢谢。


实际上 Django 文档指出:

即使您的网站仅在一个时区可用,它仍然 在数据库中以 UTC 格式存储数据的良好做法。一个主要原因 是夏令时 (DST)。许多国家都有夏令时制度, 春天时钟向前拨动,秋天时钟向后拨动。如果 你在当地时间工作,你可能会遇到两次错误 转变发生的一年。 (pytz 文档讨论了 这些问题更详细。)这可能对您来说并不重要 博客,但如果您对客户的账单过高或过低,就会出现问题 一小时,一年两次,每年。这个问题的解决办法是 在代码中使用 UTC,并且仅在与交互时使用本地时间 终端用户。

此外:

当启用时区支持时,Django 使用时区感知的日期时间对象。如果您的代码创建日期时间对象,他们也应该知道。在这种模式下,上面的例子就变成了:

import datetime
from django.utils.timezone import utc

now = datetime.datetime.utcnow().replace(tzinfo=utc)

模板中的时区感知输出当您启用时区支持时, Django 将感知日期时间对象转换为当前时区 它们在模板中呈现。这与格式非常相似 本土化。

最后,无需猴子修补任何东西:https://docs.djangoproject.com/en/1.6/topics/i18n/timezones/#template-tags

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

输出时区感知的 django 日期时间字段,无需过滤器 的相关文章

  • Knex 与 PostgreSQL 选择查询在多个并行请求上性能极度下降

    In brief 我正在开发一个 梦想中的 游戏 我的后端堆栈是 Node js 和带有 Knex 的 PostgreSQL 9 6 我在这里保存所有玩家数据 我需要经常请求它 其中一个请求需要进行 10 个简单的选择来提取数据 这就是问题
  • django Manytomany自关系按中间表id排序

    Model class Person models Model friends models ManyToManyField self blank True null True friends person friends order by
  • 如何列出表外键

    有没有办法使用 SQL 列出给定表的所有外键 我知道表名称 架构 我可以将其插入 您可以通过 information schema 表来完成此操作 例如 SELECT tc table schema tc constraint name t
  • 如何在 django-admin 中显示外键的选择?

    我有与 django admin 面板相关的小问题 我有 2 个型号 from django db import models class Subject models Model subject models CharField max
  • Python postgreSQL sqlalchemy 查询 DATERANGE 列

    我有一个预订系统 并将预订日期范围保存在 日期范围 列中 booked date Column DATERANGE nullable False 我已经知道我可以通过以下方式访问实际日期booked date lower or booked
  • Django:在视图中访问时,settings.py 中的重音字符被破坏

    我在 settings py 中有重音字符 我使用 getattr settings MY CONSTANT NAME 在视图中访问这些字符 但 getattr 调用返回损坏的字符 例如 变为 xc3 xb4 这是 view py 中的代码
  • 如何自定义 django 管理更改页面以返回到“保存”时的特定 URL

    我想使用 django contrib admin 页面来编辑我的模型 但从我自己的视图中调用单独的更改页面 然后在用户单击 保存 后返回那里 理想情况下 这应该通过将返回 URL 附加到管理页面的 url 来实现 如 return url
  • 模型形式中的值错误

    我正在使用模型表单来获取播放列表及其项目 它还包含登录脚本 我正在尝试将当前登录的用户设置为用户模型 你可以看看我之前发过的这篇文章如何避免这个下拉组合框 https stackoverflow com questions 8763612
  • 在多个端口上运行 Django

    有人能告诉我如何同时在两个端口上运行 Django 吗 默认的 Django 配置仅侦听端口 8000 我也想在端口 xxxx 上运行另一个实例 我想将所有请求重定向到第二个端口到我的 Django 应用程序中的特定应用程序 我需要使用默认
  • 在 django 中进行单元测试时出现“auth_user 不存在”

    我已经尝试解决这个错误一周了 但我似乎不知道如何解决这个错误 使用这个存储库的其他人都没有遇到与我相同的问题 我是最新的源 所以它必须是某种本地问题 但我不知道它会是什么 每次我尝试运行我们编写的 django 单元测试时都会发生这种情况
  • 嵌套序列化器中的上下文 Django Rest Framework

    如果我有一个嵌套序列化器 class ChildSerializer ModelSerializer class Meta fields c name model Child class ParentSerializer ModelSeri
  • Django:用户在线/离线 - 即使用户在线,用户也没有 false

    我想知道我的用户是在线还是离线 我有不同的应用程序 我正在为所有用户使用用户应用程序 用户 模型 py class UserProfile models Model def last seen self return cache get l
  • 在 Django ORM 中的子查询中返回多个值

    问题是关于Subquery and ArrayAgg在 Django ORM 中 例如 我有 2 个模型 彼此之间没有任何关系 class Example1 models Model ident Integerfield class Exa
  • SQL 中WITH 子句的使用指南

    我了解如何使用WITH递归查询子句 但我在理解它的一般用途 功能时遇到问题 例如 以下查询更新一条记录 其 id 是通过使用按时间戳返回第一条记录 id 的子查询来确定的 update global prospect psp set sta
  • 导出数据库的 CREATE 脚本

    假设我已经在 pgAdmin 中创建了一个数据库 但我想导出一个 CREATE sql 文件 我将如何生成转储 以下是如何使用 pgAdmin 创建一个架构脚本 该脚本可以与 PostgreSql 数据库架构比较工具 例如apgdiff h
  • Django 管理中的自定义依赖下拉菜单

    我有一个按阶段模型的项目外键 我很难在 Django 管理页面中创建依赖的下拉列表 我想当用户从该项目的 项目下拉 阶段选择一个项目时 在第二个下拉菜单中显示 实现这一目标的最佳方法是什么 如果下拉列表根据其父级的值来过滤项目 那就太好了
  • 如何在 django admin 中更新 jquery 版本

    如何在 Django 管理中更新 jquery 版本 无需在 django contrib admin media js admin jquery min js 中替换它 到最新的 jquery min js 另外 我不想在我的管理员中使用
  • 在Django表单中设置隐藏字段的值

    我在用着django registration管理我的注册 我试图强制我的用户名和电子邮件在 Django 应用程序中相同 并且我尝试通过注册表来完成此操作 如下所示 class NoUsernameRegistrationForm Reg
  • Django-CMS 插件未出现

    我正在部署 Django 网站 我在计算机上运行的所有自定义插件 我可以从下拉列表中将它们添加到模板块中 但是当我将代码推送到站点时 并非所有插件都可用 数据库表已创建 如果我导入plugin pool并打电话discover plugin
  • Django 和 REST API 服务基于计算的请求

    我在 Django 中编写了一个机器学习应用程序 以便用户可以在表单中指定一些参数并训练模型 模型训练完成后 我想满足以下请求 curl http localhost 8000 model input XYZ 我希望 Django 返回给定

随机推荐

  • 根据序列号重命名匹配的文件

    假设我有一堆 mac 屏幕截图的文件 Screen Shot 2018 11 09 at 12 37 37 PM png Screen Shot 2018 11 10 at 4 53 02 PM png Screen Shot 2018 1
  • Chartjs - 如何在 x 轴标签上获取过去 7 天的数据?

    我试图在折线图的 x 轴上获取过去 7 天的信息 使用 Chartjs 做这个的最好方式是什么 Thanks 您可以使用以下代码实例化过去 7 天的图表 let start new Date end new Date start setDa
  • 优化行为测试套件

    我有一个测试套件 其中有 20 个功能文件 并且正在执行 100 MySQL CRUD 操作 大约需要 5 分钟才能完成 如果我手动进行测试 最多需要大约 7 分钟 我需要知道的是 我需要做什么才能优化整个流程 Note 平行跑者不支持对于
  • 无法在 Ionic 2 项目中使用 cordova 文件插件读取文件

    我正在尝试使用Cordova 文件插件读取移动设备中保存的图像 这样我就可以获得它的 Base64 编码 我需要远程存储它 问题在于 resolveLocalFilesystemUrl 方法本应提供一个 File Entry 对象 但似乎返
  • 何时使用 git 子树?

    有什么问题git subtree解决 我何时以及为什么应该使用该功能 我读到它是用于存储库分离 但为什么我不直接创建两个独立的存储库 而是将两个不相关的存储库合并为一个呢 这个 GitHub 教程解释了如何执行 Git 子树合并 我有点知道
  • PHP 致命错误:找不到类“Dotenv”

    我有一个项目 我尝试运行它 但出现以下错误 PHP Fatal error Class Dotenv not found in home maras Documents eCodile debtorcare server bootstrap
  • 使用包“cmprsk”在 R 中自定义竞争风险图

    我正在尝试使用 R 和包定制竞争风险图cmprsk 具体来说 我想覆盖默认情况 即对于竞争事件使用颜色 对于不同组使用线型 这是我的可重现的示例 library ggplot2 library cmprsk library survmine
  • 标准化 FFT 数据 (FFTW)

    我一直在使用 FFTW 计算标准化 wav 文件数据的 FFT 然而 我对如何标准化 FFT 输出有点困惑 我一直在使用对我来说显而易见的方法 即除以最高的 FFT 幅度 然而 我已经看到建议除以 1 N 和 N 2 其中我假设 N FFT
  • 仅在 NVIDIA 上的 glDrawArrays 上的 Java OpenGL EXCEPTION_ACCESS_VIOLATION

    我正在使用 lwjgl 开发一个 java 游戏 它是 OpenGL 实现 从来没有任何问题 直到我与一位使用 NVIDIA 而不是 AMD 的同事交换它 突然它在 AMD 上工作的线路上崩溃 但它只在代码中的那个点崩溃 这是最磨损的部分
  • 在 Grails 中解析 CSV 并导出到 Mysql 数据库

    我是 Groovy Grails 的新手 我想提交解析 CSV 文件并导出到 MySQL 数据库的多个表中 我看过一些编码 但作为新手 这让我感到困惑 那么任何人都可以帮助我理解简单的 csv 文件解析并导出到 MySQL 数据库 谢谢 索
  • 适用于 Android 的 pdf 查看器库

    我知道这个问题已经被问过好几次了 但我找不到一个令人满意的答案 我的要求很简单 只需在我的应用程序 android 中打开pdf文档 但我无法找到一种简单的方法来做到这一点 它的原生 c c 方式或编写自己的引擎 但是没有任何简单的 API
  • 如何在dygraphs中设置特定的y轴标签点?

    Dygraphs 通常会根据轴的大小 标签的大小等自动选取 Y 和 X 轴标记点 在某些情况下 它会选取导致清晰度较低的标记点 例如 在 Y 轴值为 0 到 10 的图表上 它标记为 0 4 和 8 至少对于特定尺寸的图表而言 我希望将其标
  • wpf/silverlight 应用程序到 DVD

    如何转换 wpf silverlight 应用程序 使其可以在 DVD 上运行 我们有用于学习目的的 wpf 应用程序 我们希望创建该应用程序的 DVD 版本并将其提供给我们的用户 以便他们可以回家使用它们 任何建议将不胜感激 我们已经查看
  • 如何使用 sed 仅替换第二个匹配行

    cat file cat cat dog cat dog puppy dog cat 使用 sed sed s dog big dog my file gt new file cat new file cat cat big dog cat
  • 如何让 Eclipse 解析 MongoDB\BSON 命名空间中的 php 类?

    经过多次来来去去 我成功安装了 PHP 5 6 的 MongoDB 驱动程序 并使其在 OSX El Capitan 上运行 它的工作方式是使用Homebrew 为了开始处理项目 我为该项目创建了文件夹并使用Composer安装了我需要的必
  • Hive 查询在生成缺失日期时面临问题

    我有一个要求 我需要返回到列的先前值 直到 1000 行 并获取之前的 1000 个日期以用于下一步 但是表中该列不存在所有这些先前的 1000 个日期 但我需要从查询的输出中获取那些缺失的日期 当我尝试运行下面的查询时 它没有显示当前日期
  • 如何在 Android 中获取当前日期?

    我写了下面的代码 Date d new Date CharSequence s DateFormat format MMMM d yyyy d getTime 我想要字符串格式的当前日期 例如 28 Dec 2011 这样我就可以将它设置为
  • 如何将PCM原始数据转换为mp3文件?

    编辑我的问题 是否有从 PCM 原始数据到任何音频文件的编码器 mp3 ogg 但不是WAV 因为它太大了 我有一个包含原始 PCM 数组的文本文件 我想将其转换为 mp3 ogg 文件 经过长时间的搜索 我找不到一些提供这种编码 PCM
  • azure blob存储和azure data Lake存储之间的区别[关闭]

    Closed 这个问题是基于意见的 目前不接受答案 对于像我这样的用户来说 这似乎很困惑 因为 azure blob 存储和 azure data Lake 存储之间的主要区别是什么 以及在什么用户情况下 azure blob 存储比 az
  • 输出时区感知的 django 日期时间字段,无需过滤器

    您好 我升级到 django 1 4 我想利用时区支持 我在 postgres 中保存了一些日期时间字段 并且在我设置后 它们是假设我所在城市的时区保存的 USE TZ True 并将时区设置为我的城市 模板中的日期过滤器标签输出正确的小时