在django

时间:2017-09-09 18:54:12

标签: django

我继承了一个django项目,并且有一个带有日期时间字段的模型(是的,该模型被称为"测试",如"实验室测试&#34 ;)

class Test(models.Model):
    datetime = models.DateTimeField()

此字段在模板中的格式为May 16, 2017, 9:55 a.m.,我需要更改它,但不知道这种格式的来源,以及如何更改它。

这里是模板代码,功能是在for循环中构建的,没有什么花哨的,然后使用datatables.net JavaScript修改(我可以禁用它并且没有效果,因此在此之前应用格式化):

{% load static i18n tz epoch_tag postman_tags %}
...
{% for test in tests %}
    ...
    <td>{{ test.datetime|default_if_none:"" }}</td>
    ...
{% endfor %}
...

该视图是标准的ListView,具有正常的查询集,没有什么奇怪的。

在取消评论各行之后,我在设置中拥有的内容:

LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
# Doesn't work
DATE_FORMAT = "Y-m-d"
SHORT_DATETIME_FORMAT = "Y-m-d"
#USE_I18N = True
#USE_L10N = True
#USE_TZ = True

以下是上下文处理器,以及我尝试过的评论:

'django.template.context_processors.request',
#'django.template.context_processors.i18n',
'apps.postman.context_processors.inbox',
'apps.biomarker.context_processors.base_template_for_user_type',
'apps.menus.context_processors.menu_elements',
#'django.template.context_processors.tz',
'django_settings_export.settings_export',
'apps.biomarker.context_processors.custom_pages',
'apps.hm_multitenancy.context_processors.add_practice_context'

第三方应用,我试过评论的那些:

'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
#'django.contrib.humanize',
'django.contrib.sites',
'django.contrib.admin',
'django.contrib.sitemaps',

'django_tables2',
'django_countries',
#'easytz',
'allauth',
'allauth.account',
'rest_framework',
'django_filters',
'django_inlinecss',
'django_extensions',
'crispy_forms',
'rosetta',
'ckeditor',
'ckeditor_uploader',
'impersonate',
'corsheaders',
'email_log',
  • 我已删除任何可能干扰的JavaScript。
  • 我尝试将字段更改为返回字符串的属性,以查看是否可能导致异常,以防我幸运但无济于事。
  • 模型中没有任何东西我可以看到干扰。
  • 有一个目录locale / en / LC_MESSAGES但我不知道其中是否有任何可能影响它的内容。

任何有关解决这个问题的帮助都将非常感谢!

1 个答案:

答案 0 :(得分:1)

根据您的需要格式化这些日期的最简单方法可能是使用date过滤器,因为您说日期是由模板引擎插入的。这里有详细记载:

https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#std:templatefilter-date

只需执行以下操作(如文档示例所示):

{{test.datetime|date:"D d M Y"}}