Комментарии 22
Кстати, в версии Django 1.5 убрали localflavor из Django и перенесли в отдельные репозитории. Например для россии тут. Чтобы ими пользоваться придется их дополнительно устанавливать для каждой страны.
На самом деле вчера не успел отредактировать и уточнить что не убрали а начали процесс по переносу. «localflavor» еще там, но вываливается Deprecation Warning что нужно пользовать django-localflavor-*. В более поздних версиях совсем уберут.
Спасибо за статью. Небольшое примечание к стилистике:
->
то же самое с
if not phone:
->
if phone is None:
то же самое с
if not value ...
Это же разные проверки. В данном случае все верно.
Вот уж не согласен. Вторая строка дзен Python: «Explicit is better than implicit.». В Python
Я в своё время получил много головной, ожидая в функции строковый аргумент такого вида:
Проблемы начинались тогда, когда
not X
может означать всё что угодно, например:х = 0
not x # тут всё просто
>>> True
x = ""
not x # а здесь уже работает len(x)
>>> True
х = []
not x # и здесь
>>> True
x = {}
not x # то же самое
>>> True
x = None
not x # а вот так писать - прямая дорога в Питоний ад.
>>> True
Я в своё время получил много головной, ожидая в функции строковый аргумент такого вида:
def f(s = None):
if not s:
print 's is None'
Проблемы начинались тогда, когда
s == ""
.Вы не согласны с чем? С тем что not и is None — разные проверки, которые дают разный результат? Откуда там None возмется?
«Я использую инпут для одной строки, хочу туда писать много строк. Джанга не удобна».
Офигено. Вам дают отличные инструменты для работы с подобными задачами FormSet и InlineFormSet, почему их не юзаете?
Офигено. Вам дают отличные инструменты для работы с подобными задачами FormSet и InlineFormSet, почему их не юзаете?
Да нет же, строка одна насколько я понял… Я вот только не понимаю чем автору не угодило:
1. хранить в базе готовые отформатированные номера
2. отформатировать номер ровно 1 раз — при получении его от юзера (ну будет он в форме по новому выводится — дак и хрен с ним).
1. хранить в базе готовые отформатированные номера
2. отформатировать номер ровно 1 раз — при получении его от юзера (ну будет он в форме по новому выводится — дак и хрен с ним).
Потому что искренне убежден, что пользователю удобнее ввести два телефона через запятую, чем нажимать плюсик и ставить фокус в следующее поле вода.
Ну так ставьте фокус автоматом, после нажатия на «плюсик».Да и потом, какая надобность ДВА телефона указывать в ОДНОМ поле? Обычная практика — мобильный и стационарный номер.
Какой же ширины поле должно быть? А если не большой ширины, то что бы проверить то, что пользователь ввел — надо курсор двигать влево-вправо? Тоже не очень удобно.
Какой же ширины поле должно быть? А если не большой ширины, то что бы проверить то, что пользователь ввел — надо курсор двигать влево-вправо? Тоже не очень удобно.
Ну добавляйте поля по клику пользователя на пробел, запятую и т.д. В чем проблема?
И где вы такое видели? И как это будет работать без js? И если нажать бекспейс в пустом поле, поле нужно убрать (пользователь удаляет виртуальную запятую, которую не видит)? И в чем будет отличие от .split(",") на сервере и от одного поля для пользователя?
Придумываете уже какой-то бред, лишь бы доказать первоначальный тезис, что я сделал что-то не так.
Придумываете уже какой-то бред, лишь бы доказать первоначальный тезис, что я сделал что-то не так.
Без JS стандартный метод работы с Formset, всегда пара свободных полей дополнительно.
Вы действительно делает что-то не так )
Много телефонов, к одной модели. Это однозначно FK (если не M2M, зависит от данных). Зачем запихивать данные, которые должны храниться как FK в модель через CharField? Ошибка в структуре хранения данных.
Вы действительно делает что-то не так )
Много телефонов, к одной модели. Это однозначно FK (если не M2M, зависит от данных). Зачем запихивать данные, которые должны храниться как FK в модель через CharField? Ошибка в структуре хранения данных.
Согласен с тем, что в модели FK на телефонный номер, а в шаблоне формсет, кстати Вы можете оставить одно поле, если Вам так хочется, и вводить номера через запятую, а по сабмиту вызвать js, который преобразует всё в формсет. Но как по мне — то с плюсиком удобнее (с автофокусом).
вот снипет нашёл, наткнувшись на эту статью http://djangosnippets.org/snippets/2811/
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Проблемы в библиотеке форм Django на примере поля ввода телефонов