Skip to content

Commit d29d771

Browse files
authored
[Fix #419]Fixing timefield for django (#426)
1 parent d33a2da commit d29d771

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

django_elasticsearch_dsl/documents.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
KeywordField,
2222
LongField,
2323
ShortField,
24-
TextField,
24+
TextField, TimeField,
2525
)
2626
from .search import Search
2727
from .signals import post_index
@@ -47,7 +47,7 @@
4747
models.SlugField: KeywordField,
4848
models.SmallIntegerField: ShortField,
4949
models.TextField: TextField,
50-
models.TimeField: LongField,
50+
models.TimeField: TimeField,
5151
models.URLField: TextField,
5252
models.UUIDField: KeywordField,
5353
}

django_elasticsearch_dsl/fields.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from django.core.exceptions import ObjectDoesNotExist
55
from django.db import models
66
from django.db.models.fields.files import FieldFile
7+
78
if django.VERSION < (4, 0):
89
from django.utils.encoding import force_text as force_str
910
else:
@@ -111,7 +112,8 @@ def _get_inner_field_data(self, obj, field_value_to_ignore=None):
111112
obj, field_value_to_ignore
112113
)
113114
else:
114-
for name, field in self._doc_class._doc_type.mapping.properties._params.get('properties', {}).items(): # noqa
115+
for name, field in self._doc_class._doc_type.mapping.properties._params.get(
116+
'properties', {}).items(): # noqa
115117
if not isinstance(field, DEDField):
116118
continue
117119

@@ -255,3 +257,12 @@ def get_value_from_instance(self, instance, field_value_to_ignore=None):
255257

256258
class FileField(FileFieldMixin, DEDField, Text):
257259
pass
260+
261+
262+
class TimeField(KeywordField):
263+
def get_value_from_instance(self, instance, field_value_to_ignore=None):
264+
time = super(TimeField, self).get_value_from_instance(instance,
265+
field_value_to_ignore)
266+
267+
if time:
268+
return time.isoformat()

0 commit comments

Comments
 (0)