我继承了一个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',
任何有关解决这个问题的帮助都将非常感谢!
答案 0 :(得分:1)
根据您的需要格式化这些日期的最简单方法可能是使用date
过滤器,因为您说日期是由模板引擎插入的。这里有详细记载:
https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#std:templatefilter-date
只需执行以下操作(如文档示例所示):
{{test.datetime|date:"D d M Y"}}