-
Привет.
Стандартный модуль flatpages из contrib, пытаюсь создать страницу, указываю url, содержащий точку ( /foo.html ). Не разрешает: "This value must contain only letters, numbers, underscores, dashes or slashes.". Не баг ли это? -
Баго-фича, фиче-баг, "скажите просто: они есть или их нет" :)
-
Мм, а нельзя ли, пожалуйста, как-нибудь так, чтобы я понял ответ?
-
Глянул блог. Попроще, если это возможно :)
-
Видимо, предыдущий оратор имел в виду, что никто не обещал там работы flatpage-урлов с точкой. Соответственно, если Вам это очень нужно - можете написать свою форму для админки, например.
-
Видимо, предыдущий оратор имел в виду, что никто не обещал там работы flatpage-урлов с точкой.
Спасибо. Но разве это правильно? Точка - вполне обычный символ для url'а, не так ли? -
Но разве это правильно? Точка - вполне обычный символ для url'а, не так ли?
Обычный - не значит правильный. Есть мнение, что правильно делать "папочками" все хтмл-странички. А с точками только специфические форматы типа .xml, которые flatpages не предполагают.
Плюсов "папочек" много, например, вложенные странички просто добавлять. А вот сделаете .html и понадобится добавить вложенную потом, получится old.html/child.html. А общая идея в том, что хтмл - дефолтный формат в наше время и незачем факт хтмль-ности паги отмечать каждый раз, удлинняя урл при этом.
Если переносите сайт, можно редиректы поставить с .html, а странички всё же папочками сделать.
Наверняка, есть и другие мнения, вполне обоснованные. И для кого-то это баг-таки :)
-
Мне очень нужны были точки в slug, т.к. используется для версий программ, а в них часто точки, и без точек некрасиво и путаница возникла бы (например, сейчас есть такой url http://progopedia.ru/version/barsic-11.23/).
Для того, чтобы были точки в slug, я сделал monkey-patching одного регулярного выражения и подменил одну JavaScript-функцию для админки. Да, попутно вылез один мелкий-мелкий баг (по моему мнению) - написал тикет http://code.djangoproject.com/ticket/10990.
В общем, точки в url (везде, не только во flatpages) довольно просто сделать при помощи monkey-patching. Но так идеологически неправильно, вроде как.
Да, а в саму Django точку в разрешенные в slug символы не добавят. Были тикеты, ответ - определяйте свой тип поля и разрешайте там, что хотите. Только ж при этом везде придется менять, и не только в своем приложении... -
Обычный - не значит правильный. Есть мнение, что правильно делать "папочками" все хтмл-странички. А с точками только специфические форматы типа .xml, которые flatpages не предполагают.
Даже если не обсуждать правильность этого мнения, Django - фреймворк. Он не должен бы устанавливать таких ограничений, если нет серьёзных причин. Например, один человек здесь жалуется, что ему надо доказать Google, что он владелец домена, создав страницу 12345.html . А он не может, так как точки в URL'ах не разрешены.
Да, а в саму Django точку в разрешенные в slug символы не добавят. Были тикеты, ответ - определяйте свой тип поля и разрешайте там, что хотите. Только ж при этом везде придется менять, и не только в своем приложении...
А можно ссылок? В Ticket #5192 вроде решили исправлять. -
А можно ссылок? В Ticket #5192 вроде решили исправлять.
Я про SlugField говорил, думал flatpages его использует, а, похоже, нет...
Но и тикету 5192 два года уже, сомневаюсь, что поменяют.
Да, посмотрел, там CharField и просто проверка в форме в админке regex=r'^[-\w/]+$' -
А какие сложность создать URL 12345.html в urlconf'е? Я так без проблем доказывал своё владение доменом.
-
А какие сложность создать URL 12345.html в urlconf'е? Я так без проблем доказывал своё владение доменом.
Никаких. И вообще flatpages не нужны, получается. -
Очень даже нужны. У меня в каждом проекте есть.
-
Очень даже нужны. У меня в каждом проекте есть.
Ну так какие сложности создать страницы вручную в urlconf'е? :)
Ладно. Я оставил комментарий в Trac'е. Может сделают. -
Сложностей никаких нет :) Просто я создаю flatpages не через джангоадминку (а через самописный интерфейс пользователя). Думаю, что программно можно создать и с точкой url.
PS. Быть может стоит просто переопределить форму для админки? :)
-
PS. Быть может стоит просто переопределить форму для админки? :)
Можно. Но лучше бы оно было исправлено непосредственно в Django. -
В Django оно работает так, как и задумано разработчиками.
url = forms.RegexField(label=_("URL"), max_length=100, regex=r'^[-\w/]+$', help_text = _("Example: '/about/contact/'. Make sure to have leading" " and trailing slashes."), error_message = _("This value must contain only letters, numbers," " underscores, dashes or slashes."))
То есть это не ошибка.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.



