1. marvin

    04.09.2008 14:46

    Кто нибудь делал сабж? Если да, то как?
    Интересует возможность обновление urls.py в момент когда settings.py уже прочитан, а fastcgi-сервер еще не запущен. Такое вобще реализуемо без особого костылизма?
  2. Не очень понятен вопрос, а точнее начальные условия.

    Но вот такой вариант в urls.py очень распространен:

    from django.conf import settings
    
    
    if settings.MY_SETTING:
       urlpatterns = patterns(...)
    else:
       urlpatterns = patterns(...)
    
    if settings.ADD_URLS:
       urlpatterns += patterns(...)
    
  3. ziro

    05.09.2008 09:39

    Делал что-то похожее - в middleware переписывал request.urlconf - хотя это наверно совсем радикально для данного случая.
  4. marvin

    05.09.2008 14:26

    ммм... Сейчас попробую объяснить.
    Есть некоторый класс, который пишет програмист ничего не знающий о Django и о HTTP вобще. Есть некоторый метакласс, который обертывает все return'ы этого класса, в HTTPзапросы которые идут к Django апликации.
    Мы не знаем какой класс будет использоваться. Но в момент запуска, нужно пройтись по этому классу и сгененировать URL'ы вида:
    /service_name/class_name/method_name/ args
    такие дела
  5. marvin

    05.09.2008 14:55

    ЗЫ: пока я это делаю с большим количеством dir'ов и getattr'ов, рекурсивно и через редкую за*цу
  6. Да, а интроспекция по другому и не делается, надо много диров и гетатров.

    А вообще при такой постановке вопроса не понятно зачем генерировать урлы. Пишется один диспетчер и соотвественно к нему один урл с вайлдкард на конце. И вся магия проиcходит в нем и не надо что-то оборачивать. Он из запроса собирает некое множество параметров, передает их в удаленную сущьность, получая от неё некий результат и генерирую правильный ответ.

  7. Иван Сагалаев

    07.09.2008 11:06

    +1

bbcode