Объект списка Django Rest framework не имеет атрибута ниже при указании формата даты в настройках

#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:

Вы установили дату в виде списка, формат даты ожидает строку. Просто уберите скобки [ ] из настроек, и все готово.