【问题标题】:django template - date format issuedjango 模板 - 日期格式问题
【发布时间】:2015-01-15 01:33:58
【问题描述】:

我正在尝试使用变量作为日期格式在某些 javascript 中将值动态格式化为日期,但我想不出一种方法来让它工作。

此代码有效:

function resetFormValues() {

    $('#id_name_of_date_element').val('{{ name_of_django_variable|date:"m/Y" }}');

我的模板上有一个名为 dd_format 的变量,其值为 m/Y 或 m.Y。我已经测试了变量值是有效的并且确实存在。

如何将“m/Y”替换为变量,如下图:

 $('#id_name_of_date_element').val('{{ name_of_django_variable|date:dd_format }}');

当我用变量替换“m/Y”时得到的错误是模板渲染期间出错

【问题讨论】:

  • 为什么需要从 dd_format 变量中获取格式?
  • 当用户更改表单上的值时,日期格式会发生变化,因此日期格式可以是两个值之一。

标签: javascript python django date django-templates


【解决方案1】:

如果日期格式发生动态变化,应该从用户那里获取 dd_format,并且不知道 Django 何时解析表达式 {{ name_of_django_variable|date:dd_format }}

有两种选择:

  • 如果日期没有变化,可以用模板表达式计算两种日期格式,用JavaScript选择格式化的日期。

  • 如果日期也发生变化,则使用 JavaScript 格式化日期。

【讨论】:

  • 谢谢 jordiburgos,我是这样做的: if (dd_format == 'm.Y') { // mm. yyyy(. 和两个空格分隔符)。 $('#id_name_of_date_element').val('{{ name_of_django_variable|date:"m.Y" }}'); } else if (dd_format == 'm.Y') { // mm. yyyy(. 和一个空格分隔符)。 $('#id_name_of_date_element').val('{{ name_of_django_variable|date:"m.Y" }}'); } else if (dd_format == 'm.Y') { // mm.yyyy(点分隔符)。
  • 干得好,在模板执行和后面的 JavaScript 执行之间考虑有点棘手。
猜你喜欢
  • 2014-10-11
  • 1970-01-01
  • 2013-06-15
  • 2019-02-17
  • 1970-01-01
  • 2016-03-23
  • 1970-01-01
  • 2019-01-21
  • 2019-05-29
相关资源
最近更新 更多