如何使 TimeField 时区感知?

2023-12-27

有时您需要收集用户的时间而不收集关联的日期。例如,如果用户正在配置每天同一时间运行的重复事件。姜戈的TimeField但不玩时区。但是,在这种特殊情况下(并且可能在您单独记录时间的任何时候),时区是一个重要因素。那么,如何存储时区感知时间?


答案是你不知道。为了使时间能够感知时区,它必须有一个与之关联的日期。想想夏令时......我的解决方案是使用DateTimeField在模型上并覆盖表单,如下所示:

# models.py
class MyModel(models.Model):
    time_of_day = models.DateTimeField()


# form_fields.py
from django.forms.util import from_current_timezone, to_current_timezone
from django.utils import timezone

class TzAwareTimeField(forms.fields.TimeField):
    def prepare_value(self, value):
        if isinstance(value, datetime.datetime):
            value = to_current_timezone(value).time()
        return super(TzAwareTimeField, self).prepare_value(value)

    def clean(self, value):
        value =  super(TzAwareTimeField, self).to_python(value)
        dt = to_current_timezone(timezone.now())
        return dt.replace(
            hour=value.hour, minute=value.minute,
            second=value.second, microsecond=value.microsecond)


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

如何使 TimeField 时区感知? 的相关文章

  • Heroku 找不到 Django 模板

    我得到了一个TemplateDoesNotExistHeroku 查找我的 html 文件时出错 文件全部在开发服务器上同步 这TEMPLATE DIRS设置被设置为 TEMPLATE DIRS Users jonathanschen Py
  • Django,如何在管理界面中查看会话数据

    我在用着Django 会话 http docs djangoproject com en 1 2 topics http sessions 我想要一种在管理界面中查看会话数据的方法 这可能吗 IE 对于每个会话 我想查看存储在会话数据库中的
  • TemplateDoesNotExist 位于 /base.html

    朋友们 我尝试通过 Jaiswal Sanjeev 所著的 学习 Django Web 开发 一书中的项目示例来重复 运行服务器我得到这样的异常 TemplateDoesNotExist at base html TemplateDoesN
  • 渲染 StackedInline 字段时如何重写 str 方法?

    我有多对多关系 class GroupeCategoriesCategorie models Model groupe categories models ForeignKey GroupeCategories related name g
  • Django - 在处理端点请求之前验证 AWS Cognito 令牌是否有效

    因此 我使用下面的代码来检查 AWS Cognito 令牌 我显然不想将这 6 行代码添加到每个端点 另外 我不知道这是否是验证我正在做的所有事情的正确方法 即期望令牌的格式为 解析它并仅解码 JWT 令牌部分 如何对每个请求附带的 AWS
  • Django 表单:时间字段验证

    我觉得我在这里遗漏了一些明显的东西 我有一个 Django 表单 其中包含时间场 http docs djangoproject com en dev ref forms fields timefield在上面 我希望能够允许像 10 30
  • 使用 boto3 从 s3 下载时使用 filename 作为文件名

    我正在使用 boto3 上传文件 如下所示 client boto3 client s3 aws access key id id aws secret access key key client upload file tmp test
  • Django 测试 - NoReverseMatch

    为什么这个测试不起作用 这是我的观点 py class ObjectDetailView LoginRequiredMixin DetailView template name object detail html model Object
  • Django DetailView 按外键过滤

    我有点困惑 想利用 DetailView 功能 使用外键作为我的过滤器来显示数据 基本上我的模型看起来像这样 class Category models Model name models CharField max length 30 s
  • 如何在 django 运行时添加动态字段

    我必须在运行时在 django 应用程序中添加动态字段 但我不知道如何在运行时添加新字段的正确方法 我想添加将生成动态字段并更新数据库的代码 我正在使用 postgresql 数据库 如果有人可以的话请帮忙 我的 model py 就像这样
  • AbstractUser Django 完整示例

    我是 Django 新手 我已经尝试了几个星期 但找不到解决这个问题的方法 我想存储其他信息 例如用户手机号码 银行名称 银行账户 并希望在用户注册时存储手机号码 并希望用户使用 手机号码和密码 或 电子邮件和密码 登录 这是我的 User
  • django - 不支持对 JSONField 的查找或不允许在该字段上加入

    我的模型中有一个 Json 字段 class Product models Model detailed stock JSONField load kwargs object pairs hook collections OrderedDi
  • Django 应用程序部署到 Heroku,应用程序错误,

    我正在努力将 Django 1 10 应用程序部署到 Heroku 正如前言 我正在使用 Pycharm 并且一度不得不重命名我的项目 但它在所有地方都进行了重构并更改了名称 所以我希望这与该问题无关 当我将此网站推送到 Heroku 时
  • Django 模板:将变量作为参数添加到 URL 中

    正确的添加方式是什么 gamestoday lookup i 进入 a href url 我需要更改 urls py 吗 load tags a
  • 模型形式中的值错误

    我正在使用模型表单来获取播放列表及其项目 它还包含登录脚本 我正在尝试将当前登录的用户设置为用户模型 你可以看看我之前发过的这篇文章如何避免这个下拉组合框 https stackoverflow com questions 8763612
  • 在 django 中进行单元测试时出现“auth_user 不存在”

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

    我有一个代表两个用户之间交易的模型 如下所示 class Transaction models Model buyer models ForeignKey Person on delete models SET NULL null True
  • 如何在 Django 项目上访问 SQLite 的 db shell?

    我正在尝试更新变量上的列以允许 db shell 中为 null 这样我就不必删除我的表 我有通知数据 sqlite位于主文件夹中并且sqlite3 db位于 主应用程序 子文件夹中 这是为什么 我想访问哪一个 我知道它们是 2 个不同的文
  • Django 1.6:清除一张表中的数据

    我有一个名为 UGC 的表 想要清除该表中的所有数据 我不想重置整个应用程序 这也会删除所有其他模型中的所有数据 是否可以只清除一个模型 我还为我的应用程序配置了 South 如果这有帮助的话 你可以使用原始 SQL https docs
  • 将 postgres 连接到 django 时遇到问题

    以下文档来自Django Postgres 文档 https docs djangoproject com en 4 1 ref databases postgresql notes我添加到我的settings py 在我设置的设置中 DA

随机推荐

  • Alexa 自定义插槽类型:没有意图价值

    我已经将这个问题发布到亚马逊开发者论坛 但没有在那里收到答案 我想 Stackoverflow 从一开始就应该是首选 据我了解 如果我使用自定义槽类型 即使其可能值列表不包含口语单词 口语单词仍会传递给函数 文档说 自定义槽类型并不等同于枚
  • 如何向 ASP.NET 3.5 图表控件添加图例?

    有没有办法向它创建的图表添加图例 我创建了一个折线图 默认情况下它为不同的 y 轴数据创建了不同的颜色 我想要侧面有一个图例 显示哪些数据与哪种线条颜色相匹配 谢谢 您的图表控件只需添加以下行即可使用数据系列名称创建图例 chart Leg
  • 是否可以切换 appengine 应用程序的后端语言?

    我可以测试一下 但我不知道这是否可能 我用后端 python 运行一个 gae 应用程序 如果我想将语言更改为 Go Java 或 PHP 我可以保留我的应用程序和数据 而只部署使用另一个 SDK 和另一种语言而不是我当前选择的完整新版本的
  • 在 Visual Studio 2010 中混合异常处理模型会产生什么后果?

    我有第三方静态库Enable C Exceptions set to No EH未指定标志 从启用了 C 异常的代码中调用它会产生什么后果 EHa 如果从库内部抛出结构化异常 主应用程序提供给 set se translator 的函数是否
  • 更新多线程 PyQT 中的 GUI 元素

    我研究了一段时间以查找信息如何使用 PyQT 进行多线程程序 更新 GUI 以显示结果 我习惯于通过示例进行学习 但我找不到 是的 我找了几周 任何使用多线程执行简单任务的程序的简单示例 例如连接到 www 站点列表 5 个线程 并仅进行打
  • 如何捕获和解析从 Google Maps v3 API 返回的 JSON?

    我写下了以下代码 var url http maps googleapis com maps api geocode json latlng position coords latitude position coords longitud
  • 在 Android 中旋转可绘制对象

    怎样才能一个Drawable从资源加载并在绘制时旋转 例如 我想画一个箭头 并在绘制时能够将其旋转到不同的方向 您需要使用 Bitmap 和 Canvas 类函数来准备可绘制对象 Bitmap bmpOriginal BitmapFacto
  • C++ 指向成员函数的指针,替换 __closure

    不久前 Borland 在他们的 BCB 环境中引入了 C 语言的扩展 这个扩展是一个 closure 关键字 问题是 是否可以用普通 C 或 C 11 实现此类功能 如果您不熟悉 closure 关键字 下面的代码在注释中提供了解释 提前
  • 使用 Google 标签管理器提取部分 URL

    所以我有这个网址 https www site be pand titel van het pand t8500 17082 4 https www site be pand titel van het pand t8500 17082 4
  • MySQL 数据库中如何处理并发查询?

    我正在使用 MySQL 数据库 我想知道如果我同时进行多个 500 或更多 查询以便从多个表中获取信息 这些查询是如何处理的 顺序还是并行 查询始终在多个会话 即客户端连接 之间并行处理 单个连接上的所有查询都会相继运行 可以根据可用的服务
  • Android 游戏 - 记录时间

    我有一款安卓益智游戏 当谜题开始时 我取当前时间 long startTime System currentTimeInMillis 当玩家完成拼图时 我再次计时 减去开始时间并计算出经过的时间 这一切都好 我的问题是当应用程序中断时该怎么
  • Magento:如何让观察者在外部脚本中工作?

    据我所知 当脚本在 Magento 外部运行时 事件触发时不会调用观察者 为什么 我如何解决它 以下是导致我提出这个问题的原始问题 问题是应用目录规则的观察者永远不会被调用 事件触发 但观察者没有接收到它 我正在运行一个加载 Magento
  • 下载 Graphlab 依赖项 get_dependencies() 时出现问题

    当我尝试下载运行所需的依赖项时遇到问题graphlab I do import graphlab我得到以下信息 ACTION REQUIRED Dependencies libstdc 6 dll and libgcc s seh 1 dl
  • 是否可以序列化 C# 代码块?

    我正在使用 C NET http en wikipedia org wiki NET Framework3 5 是否可以序列化一段代码 将其传输到某个地方 反序列化 然后执行它 其用法示例如下 Action pauxPublish dele
  • git中如何忽略以#开头的文件

    我想知道是否有可能 如果可能的话如何实现 通过 gitignore 忽略 git 中以 开头的文件 我已经尝试过了 myfile 没有运气 这是正确的语法
  • 更改 MySQL 中的列数据类型而不丢失其他元数据(DEFAULT、NOTNULL...)

    If I do ALTER TABLE testtable MODIFY mycolumn NEWDATATYPE 我失去了其他定义 例如 NOT NULL COMMENTS DEFAULT 值 有没有办法做到这一点 在 PostgreSQ
  • Rails Paperclip 如何使用 ImageMagick 的滤镜选项?

    我最近用 Rails 实现了 Paperclip 并想尝试 ImageMagick 中的一些过滤器选项 例如blur http www imagemagick org Usage blur 我无法找到任何如何执行此操作的示例 它是否通过 s
  • 如何增加搜索栏值

    我想创建分为 5 个部分的搜索栏 below Average Average and Excellent 对于每一步 我都希望像这样的搜索栏一样增量 默认 0 最大值 100 i want seek bar values like this
  • 如何获得有关枚举单例的完整艾玛覆盖率报告?

    在 Java 中可以通过枚举来保证对象的唯一实例 如下所示 public enum EmmaTest public static int someStaticMethod return 33 如何对此类对象实现 100 Emma 测试覆盖率
  • 如何使 TimeField 时区感知?

    有时您需要收集用户的时间而不收集关联的日期 例如 如果用户正在配置每天同一时间运行的重复事件 姜戈的TimeField但不玩时区 但是 在这种特殊情况下 并且可能在您单独记录时间的任何时候 时区是一个重要因素 那么 如何存储时区感知时间 答