Как стать автором
Обновить

Комментарии 15

Осталось только понять, как между полями вставлять некие символьные разделители (например, ':' между часами и минутами)

Переопределить метод MultiWidget.render()?
сразу хочу сказать, что использование только MultiValueField порождает обычную строку для ввода текста, что никакого смысла не имеет
Это по определению очевидно, т.к. MultiValueField это поле джанго-формы, а инпуты «порождает» то, что заявлено как widget для этого поля (можно и на ходу задать).
Длинна
Длина
Осталось только понять, как между полями вставлять некие символьные разделители
Если речь про разделители между инпутами, то, очевидно, это в render виджета делается, как и другие дела с их расположением и видом самого виджета. Про это всё в доке есть. А в самих исходниках джанги несколько примеров использования (как раз вроде в том числе для времени и даты, не помню, ни разу не использовал эти поля/виджеты). Вообще в принципе примеры уровня джанговской доки у вас.
За длину спасибо — поправил. Писалось ночью, но это не оправдание=)
Про рендер посмотрю и дополню пост.
Если «примеры уровня джанговской доки» — положительное качество, то я старался. Если нет, то я тоже старался, но не получилось=)
Мне почему-то кажется, что пользователи мобильных устройств будут поминать разработчиков таких композитных полей по матушке.
К сожалению, опыт показывает, что кегль хелп текста должен быть > 9000 для того, чтобы призвать хотя бы половину пользователей правильно вводить сложные наборы в текстовые поля=)
И не надо пользователей призывать. Нехай вводят так, как им удобно. А нормализовывать — это наше дело, программерское.
Кроме того, вроде бы существуют инпуты соответствующего типа, специально для телефонов.
НЛО прилетело и опубликовало эту надпись здесь
Для хранения телефонных номеров советую попробовать библиотеку django-phonenumber-field.
В её составе есть FormField и ModelField, так же из коробки получаем валидацию номеров для кучи стран и форматирование в национальном и международном формате.
Разделители вообще можно через CSS добавить :before & :after селекторами.
Как вариант, если ничто другое не поможет.
А еще можно разрешить своим пользователям вводить телефон как душе заблагорассудится, и все равно получить на выходе красивый стандартизованный телефон. Вот так.
«После стандартизации от введенных данных ничего не осталось.»
Ну и, конечно же, необходимость подгружать туда файлик руками… Я же хочу сделать так, чтобы до добавления нового функционала спокойно заниматься иными задачами, коих, кстати, не так уж мало.
«После стандартизации от введенных данных ничего не осталось» — так происходит, если ввели совсем уж мусор вместо телефона.

Руками файлики подгружать совсем не обязательно, есть REST API.
Тогда вся загвоздка в разделе «Стоимость» и в гарантиях жизни сервиса. Впрочем, желаю удачи разработчикам.
Спасибо за пожелание! :-)

Насчет гарантий жизни — это стратегический проект для нашей компании, и мы не планируем его закрывать. Стоимость для небольших проектов будет минимальной (или вообще нулевой), ну а для крупных сайтов уж точно не станет существенной статьей расхода.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.