Я попытался добавить больше вариантов времени в AdminTimeWidget, переопределив DateTimeShortcuts, ссылаясь на этот пост, а также на другие похожие посты на SO. Мои проблемы заключаются в том, что я получаю сообщение Uncaught ReferenceError: DateTimeShortcuts не определено и исключение jQuery.Deferred: DateTimeShortcuts не определено ReferenceError: DateTimeShortcuts не определено в ошибке HTMLDocument на консоли. Я новичок в Джанго, я не понял, почему получаю эту ошибку. Вот как я это реализовал:
(function($) {
$(document).ready(function() {
DateTimeShortcuts.clockHours.default_ = [
['16:30', 16.5],
['17:30', 17.5],
['18:00', 18],
['19:00', 19],
['20:00', 20],
];
DateTimeShortcuts.handleClockQuicklink = function (num, val) {
let d;
if (val == -1) {
d = DateTimeShortcuts.now();
} else {
const h = val | 0;
const m = (val - h) * 60;
d = new Date(1970, 1, 1, h, m, 0, 0);
}
DateTimeShortcuts.clockInputs[num].value = d.strftime(get_format('TIME_INPUT_FORMATS')[0]);
DateTimeShortcuts.clockInputs[num].focus();
DateTimeShortcuts.dismissClock(num);
};
});
})(jQuery);
и в моем ModelAdmin я включил этот JS-файл в класс Media, как показано ниже:
@admin.register(models.MyModel)
class MyAdminModel():
// other stuff
list_filter = [("created", custom_titled_datetime_range_filter("By created"))]
class Media:
js = ("admin/js/DateTimeShortcuts.js",)
Кроме того, у меня есть собственный фильтр диапазона дат и времени, реализованный как:
def custom_titled_datetime_range_filter(title):
class CustomDateTimeRangeFilter(DateTimeRangeFilter):
def __init__(self, field, request, params, model, model_admin, field_path):
super().__init__(field, request, params, model, model_admin, field_path)
self.title = title
return CustomDateTimeRangeFilter
Подробнее здесь: https://stackoverflow.com/questions/784 ... timewidget
Django – добавление дополнительных опций в AdminTimeWidget ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение