Почему админ 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},
}