понедельник, 14 декабря 2009 г.

Толи лыжи не едут...

urls.py и именованные ссылки это вроде бы хорошо, но вот никак немогу понять: разве нельзя в этих самых ссылках GET параметры как-то "прикрутить"?
Писать в шаблоне {% url my_link %}?param={{ template_param }} и "вручную" разбирать потом на стороне view-хи как-то кажется несколько заморочным.
А параметры в урлах временные, поэтому логичней иметь их явными параметрами, ну и AdSense не срабатывает там где нужно (наверное каждый раз пересобирает статистику для таргетинга?).

8 комментариев:

  1. Предлагаю вспомнить о том, что {{ url }} - это всего лишь template tag, и его легко можно заменить своим тегом, который будет делать все,что нравится. В этом и есть вся прелесть Django.

    ОтветитьУдалить
  2. Дак это-то понятно, вопрос возникает в том, что GET параметры получаются какбы "неродными" для джанго и требуют отдельной обработки.

    ОтветитьУдалить
  3. По сути, так и есть. Если нужно сделать нечто подобное, то лучше создать отдельный урл без GET-параметра и обращаться к нему {% url my_link template_param %}. Мне кажется, это правильно.

    ОтветитьУдалить
  4. "так" - это как?
    Проблема-то как раз в том, что URL path должен быть одинаковым, об этом собственно пост и написан. Т.е. твоё "правильно" состоит в том, чтобы не решать описанную проблему.

    ОтветитьУдалить
  5. "Так":

    > GET параметры получаются какбы "неродными" для джанго и требуют отдельной обработки.

    Одинаковым с кем? Для большинства задач не требуется именовать урлы с GET-параметрами. А если всё-таки это требуется, то тут надо изобретать собственные велосипеды. Кстати, можно пример задачи, где это требуется?

    ОтветитьУдалить
  6. Я "одинаковым" не писал :)
    Именовать-то всё равно стоит, только GET-параметры прикручивать "сбоку".
    Проблему я для себя вижу в этой "велосипедности" (от которой джанго избавлять вроде как должен).
    А задачу я вроде описал выше: есть страница отличающаяся лишь user-specific частью, которая, естественно, не является постоянной да и к тому же является временной (время жизни сутки сейчас). С т.зр. логики URI это РАЗНЫЕ страницы, поэтому логично, что адсенс "парит" в данном случае.

    ОтветитьУдалить
  7. Ок, понял! Велосипедность присутствует.

    ОтветитьУдалить
  8. > GET параметры получаются какбы "неродными" для джанго и требуют отдельной обработки.

    именно, что неродные - ведь джанго "заточен" на использование REST архитектуры для адресации урлов.

    ОтветитьУдалить