3

我想知道 django 的管理站点是否可以在两个不同的时区接受一个模型的两个日期时间字段。

例如,假设我有一个模型,例如:

class A(models.Model):
    time_a = models.DateTimeField()
    time_b = models.DateTimeField()

当我使用 django 的管理站点添加或编辑 A 的实例时,我希望我可以在 UTC+8 中填写字段 time_a,在 UTC+9 中填写 time_b。即如果我用 08:00 填充 time_a,用 09:00 填充 time_b,它们在 UTC 中是相同的。

我知道我可能会覆盖 A 的 save() 方法并通过自己进行 timedelta 计算手动处理输入,但我想知道是否有更方便或更合适的方法来执行此操作。

4

1 回答 1

1

我认为您可以扩展 django 的 DateTimeField (https://github.com/django/django/blob/master/django/db/models/fields/init .py#L1332 ),init更改为接受另一个参数default_timezone并更改to_python 方法(继承自 DateField https://github.com/django/django/blob/master/django/db/models/fields/init .py#L1257) 使用该 default_timezone。

我没有测试过

编辑:您所看到的粗体初始化实际上是一个 dunder init(初始化前有两个下划线,后有两个下划线)。我只是没有意识到如何在 stackoverflow 中禁用标记。

于 2015-03-12T16:05:50.817 回答