Редактировать : кажется, что когда мы используем DateTimeField
в django, он ожидает два ввода, один с датой, а другой со временем, подобным этому:
![enter image description here](https://i.stack.imgur.com/bKZBT.png)
Так что я просто создам два поля, одно для времени и одно для даты, опубликую ответ, если он будет работать, как ожидалось.
Я создал пользовательский виджет, чтобы заменить на моем административном сайте инструмент выбора даты и времени по умолчанию в django.
Для этого я следовал этим инструкциям
но все заканчивается так, когда я нажимаю кнопку сохранения:
![enter image description here](https://i.stack.imgur.com/0nKL9.png)
У меня нет других конкретных ошибок в журналах.
Для более подробной информации, вот код:
settings.py:
DATE_INPUT_FORMATS = ['%d/%m/%Y %H:%M']
приложение / шаблоны / виджеты / xdsoft_datetimepicker.html
{% include "django/forms/widgets/input.html" %}
<!-- jQuery -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<!-- XDSoft DateTimePicker -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.20/jquery.datetimepicker.min.css" integrity="sha256-DOS9W6NR+NFe1fUhEE0PGKY/fubbUCnOfTje2JMDw3Y=" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.20/jquery.datetimepicker.full.min.js" integrity="sha256-FEqEelWI3WouFOo2VWP/uJfs1y8KJ++FLh2Lbqc8SJk=" crossorigin="anonymous"></script>
<script>
$(function () {
$("input[name='{{ widget.name }}']").datetimepicker({
format: 'd/m/Y H:i',
});
});
</script>
Приложение / models.py:
class DatesAndDates(models.Model):
date_time_1 = models.DateTimeField()
Приложение / forms.py:
class DateForm(forms.ModelForm):
class Meta:
model = DatesAndDates
widgets = {
"date_time_1": XDSoftDateTimePickerInput(
)
}
fields=["date_time_1"]
И, наконец, app / admin.py:
@admin.register(DatesAndDates)
class DatesAndDatesAdmin(admin.ModelAdmin):
form = DateForm
list_display = ["date_time_1"]
Прежде чем пытаться это сделать, я просто использовал Charfield для даты и времени и добавил скрипт jQuery, переопределив шаблон change_form.html, но мне не удалось преобразовать строку datetime в допустимый тип datetime.
Спасибо за чтение и за помощь.