#django #django-rest-framework
#django #django-rest-framework
Вопрос:
Я хочу отформатировать поля даты в формате d / m / y. Однако, когда я использую приведенный ниже код в файле настроек, я получаю следующую ошибку: 'list' object has no attribute 'lower'
при выполнении запроса get для извлечения данных. Мое поле модели выглядит следующим образом:
licence_expiry_date = models.DateField()
Мое представление выглядит так:
if qs:
serializer = vMunGisDogsSerializer(qs,many=True)
return Response(serializer.data)
raise NotFound(detail='No Data Found')
https://www.django-rest-framework.org/api-guide/settings/#date-and-time-formatting
REST_FRAMEWORK = {
"DATE_FORMAT": ["%d/%m/%Y"],
}
Трассировка:
File "C:django_venvrestvenvlibsite-packagesdjangocorehandlersexception.py" in inner
34. response = get_response(request)
File "C:django_venvrestvenvlibsite-packagesdjangocorehandlersbase.py" in _get_response
115. response = self.process_exception_by_middleware(e, request)
File "C:django_venvrestvenvlibsite-packagesdjangocorehandlersbase.py" in _get_response
113. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:django_venvrestvenvlibsite-packagesdjangoviewsdecoratorscsrf.py" in wrapped_view
54. return view_func(*args, **kwargs)
File "C:django_venvrestvenvlibsite-packagesdjangoviewsgenericbase.py" in view
71. return self.dispatch(request, *args, **kwargs)
File "C:django_venvrestvenvlibsite-packagesrest_frameworkviews.py" in dispatch
509. response = self.handle_exception(exc)
File "C:django_venvrestvenvlibsite-packagesrest_frameworkviews.py" in handle_exception
469. self.raise_uncaught_exception(exc)
File "C:django_venvrestvenvlibsite-packagesrest_frameworkviews.py" in raise_uncaught_exception
480. raise exc
File "C:django_venvrestvenvlibsite-packagesrest_frameworkviews.py" in dispatch
506. response = handler(request, *args, **kwargs)
File "C:django_venvrestylatisresterpviews.py" in get
55. return Response(serializer.data)
File "C:django_venvrestvenvlibsite-packagesrest_frameworkserializers.py" in data
745. ret = super().data
File "C:django_venvrestvenvlibsite-packagesrest_frameworkserializers.py" in data
246. self._data = self.to_representation(self.instance)
File "C:django_venvrestvenvlibsite-packagesrest_frameworkserializers.py" in to_representation
663. return [
File "C:django_venvrestvenvlibsite-packagesrest_frameworkserializers.py" in <listcomp>
664. self.child.to_representation(item) for item in iterable
File "C:django_venvrestvenvlibsite-packagesrest_frameworkserializers.py" in to_representation
515. ret[field.field_name] = field.to_representation(attribute)
File "C:django_venvrestvenvlibsite-packagesrest_frameworkfields.py" in to_representation
1295. if output_format.lower() == ISO_8601:
Exception Type: AttributeError at /dogs/
Exception Value: 'list' object has no attribute 'lower'
Request information:
USER: AnonymousUser
Комментарии:
1. Эта ошибка не связана с форматом даты. Пожалуйста, опубликуйте свой код, в котором генерируется ошибка
2. Я добавил полную обратную трассировку, если это поможет лучше
Ответ №1:
Вы установили дату в виде списка, формат даты ожидает строку. Просто уберите скобки [ ] из настроек, и все готово.