18.06.2009 17:25

  1. Anonymous

    0 ↑
    0 ↓
    Привет.

    Стандартный модуль flatpages из contrib, пытаюсь создать страницу, указываю url, содержащий точку ( /foo.html ). Не разрешает: "This value must contain only letters, numbers, underscores, dashes or slashes.". Не баг ли это?
  2. Imbolc

    0 ↑
    0 ↓

    Баго-фича, фиче-баг, "скажите просто: они есть или их нет" :)

  3. Anonymous

    0 ↑
    0 ↓
    Мм, а нельзя ли, пожалуйста, как-нибудь так, чтобы я понял ответ?
  4. Anonymous

    0 ↑
    0 ↓
    Глянул блог. Попроще, если это возможно :)
  5. Видимо, предыдущий оратор имел в виду, что никто не обещал там работы flatpage-урлов с точкой. Соответственно, если Вам это очень нужно - можете написать свою форму для админки, например.

  6. Anonymous

    0 ↑
    0 ↓
    Видимо, предыдущий оратор имел в виду, что никто не обещал там работы flatpage-урлов с точкой.
    Спасибо. Но разве это правильно? Точка - вполне обычный символ для url'а, не так ли?
  7. Imbolc

    0 ↑
    0 ↓

    Но разве это правильно? Точка - вполне обычный символ для url'а, не так ли?

    Обычный - не значит правильный. Есть мнение, что правильно делать "папочками" все хтмл-странички. А с точками только специфические форматы типа .xml, которые flatpages не предполагают.

    Плюсов "папочек" много, например, вложенные странички просто добавлять. А вот сделаете .html и понадобится добавить вложенную потом, получится old.html/child.html. А общая идея в том, что хтмл - дефолтный формат в наше время и незачем факт хтмль-ности паги отмечать каждый раз, удлинняя урл при этом.

    Если переносите сайт, можно редиректы поставить с .html, а странички всё же папочками сделать.

    Наверняка, есть и другие мнения, вполне обоснованные. И для кого-то это баг-таки :)

  8. Мне очень нужны были точки в 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 символы не добавят. Были тикеты, ответ - определяйте свой тип поля и разрешайте там, что хотите. Только ж при этом везде придется менять, и не только в своем приложении...
  9. Anonymous

    0 ↑
    0 ↓
    Обычный - не значит правильный. Есть мнение, что правильно делать "папочками" все хтмл-странички. А с точками только специфические форматы типа .xml, которые flatpages не предполагают.
    Даже если не обсуждать правильность этого мнения, Django - фреймворк. Он не должен бы устанавливать таких ограничений, если нет серьёзных причин. Например, один человек здесь жалуется, что ему надо доказать Google, что он владелец домена, создав страницу 12345.html . А он не может, так как точки в URL'ах не разрешены.

    Да, а в саму Django точку в разрешенные в slug символы не добавят. Были тикеты, ответ - определяйте свой тип поля и разрешайте там, что хотите. Только ж при этом везде придется менять, и не только в своем приложении...
    А можно ссылок? В Ticket #5192 вроде решили исправлять.
  10. А можно ссылок? В Ticket #5192 вроде решили исправлять.

    Я про SlugField говорил, думал flatpages его использует, а, похоже, нет...
    Но и тикету 5192 два года уже, сомневаюсь, что поменяют.

    Да, посмотрел, там CharField и просто проверка в форме в админке regex=r'^[-\w/]+$'
  11. igorekk

    0 ↑
    0 ↓

    А какие сложность создать URL 12345.html в urlconf'е? Я так без проблем доказывал своё владение доменом.

  12. Anonymous

    0 ↑
    0 ↓
    А какие сложность создать URL 12345.html в urlconf'е? Я так без проблем доказывал своё владение доменом.
    Никаких. И вообще flatpages не нужны, получается.
  13. igorekk

    0 ↑
    0 ↓

    Очень даже нужны. У меня в каждом проекте есть.

  14. Anonymous

    0 ↑
    0 ↓
    Очень даже нужны. У меня в каждом проекте есть.
    Ну так какие сложности создать страницы вручную в urlconf'е? :)

    Ладно. Я оставил комментарий в Trac'е. Может сделают.
  15. igorekk

    0 ↑
    0 ↓

    Сложностей никаких нет :) Просто я создаю flatpages не через джангоадминку (а через самописный интерфейс пользователя). Думаю, что программно можно создать и с точкой url.

    PS. Быть может стоит просто переопределить форму для админки? :)

  16. Anonymous

    0 ↑
    0 ↓
    PS. Быть может стоит просто переопределить форму для админки? :)
    Можно. Но лучше бы оно было исправлено непосредственно в Django.
  17. igorekk

    0 ↑
    0 ↓
    В 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.")) 
    

    То есть это не ошибка.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.