Почему админ Django запрашивает "СПИСОК значений" для поля DateTimeField с виджетом DateTimeInput?

Я пытаюсь добавить возможность редактировать поля DateTime "начало" и "конец" в Django admin с микросекундным разрешением. Я пробовал подход из этого поста :



class SomeAdmin(ModelAdminWithJsonFields):
    """..."""
    list_display = ('id', ... , 'start', 'end')
    exclude = ['created_by', ... ]
    readonly_fields = ('created_by', 'created_on', ...)
    ...

    formfield_overrides = {
        models.DateTimeField: {'widget': forms.DateTimeInput(format='%Y-%m-%d %H:%M:%S.%f')},
    }

После открытия страницы администратора для редактирования существующей модели, которая имела допустимые значения "начало" и "конец", я вижу текстовое поле с предварительно заполненными микросекундами в вроде бы правильном формате 2022-05-13 16:41:24.000000, доказывая, что поле модели работает. Однако при нажатии кнопки "сохранить" над этими моделями появляется подсказка красным шрифтом, говорящая Enter a list of values.. Та же ошибка происходит при подходе из другого ответа SO:

class DateTime(forms.DateTimeInput):
    start = forms.DateTimeField(
        input_formats=['%Y-%m-%d %H:%M:%S.%f'],
        widget=forms.DateTimeInput(format='%Y-%m-%d %H:%M:%S.%f')
    )
    end = forms.DateTimeField(
        input_formats=['%Y-%m-%d %H:%M:%S.%f'],
        widget=forms.DateTimeInput(format='%Y-%m-%d %H:%M:%S.%f')
    )

    class Meta:
        model = MachineAssignment
        fields = ['start', 'end']

class SomeAdmin(ModelAdminWithJsonFields):
    """..."""
    list_display = ('id', ... , 'start', 'end')
    exclude = ['created_by', ... ]
    readonly_fields = ('created_by', 'created_on', ...)
    ...

    formfield_overrides = {
        models.DateTimeField: {'widget': DateTime},
    }
Вернуться на верх