Вызов URL Django из JavaScript - PullRequest
       1

Вызов URL Django из JavaScript

0 голосов
/ 24 сентября 2010

* РЕДАКТИРОВАНИЕ ЭТОГО ВОПРОСА ДЛЯ ЯРКОСТИ *

У меня есть шаблон Django с флеш-объектом в нем.Сам шаблон наследуется от основного шаблона и находится в блоке с именем info.С этим все работает нормально!

При щелчке флэш-объекта вызывается функция обратного вызова JavaScript с параметром в отдельном файле js.В этой функции я могу загрузить другой шаблон Django, используя что-то вроде

  function myCallBack(param){
        location.href = 'crc_region_cities' // (Django url). 
  }

. Я хочу знать, как мне передать параметр param (который является строкой) в этот URL, чтобы функция просмотрато же имя: def crc_region_cities берет его и выполняет соответствующий запрос ..

Дополнительная информация:

Новый URL-адрес вызывает представление, которое отображает шаблон, который снова наследует тот же основной шаблонпредыдущий шаблон и находится в том же блоке ... информация.

Есть ли лучший способ сделать это ... ??Помните, что мой flash-объект вызывает функцию обратного вызова javascript со строковым параметром, поэтому мне нужно как-то маневрировать оттуда к новому шаблону при передаче строкового параметра в URL.Ниже в коде вы можете видеть, что второй параметр функции представления называется регион.Это параметр, который мне нужно передать через функцию JavaScript.

 THE URL (r'^crc_region_cities/?$', 'crc_region_cities'),

 The View

 def crc_region_cities(request, region):
     cities = City.objects.filter(region__exact=region)
     return render_to_response('crc/crc_region_cities.html', {'cities': cities}, context_instance=RequestContext(request))

Большое спасибо

1 Ответ

0 голосов
/ 25 сентября 2010

Часто лучше не делать raw AJAX из-за всех проблем с браузером. Я рекомендую использовать для этого jQuery (и целый ряд других вещей), потому что он уже имеет дело со всеми странностями.

Взгляните на страницу jQuery AJA API , в частности посмотрите jQuery.get () и jQuery.post () для способов передачи параметров.

Замечание: я не вижу начального символа '/' в строке, которую вы назначаете для href, что означает, что она относится к исходному URL-адресу страницы. Это может легко вызвать проблемы. Помните, что Firefox с расширением Firebug - ваш друг при отладке AJAX. Запустите свою страницу и посмотрите на вкладку с надписью Console. Я не удивлюсь, если сообщит об ошибке.

Еще одна вещь, на которую стоит обратить внимание: плагин таконита jQuery - одно из самых приятных расширений AJAX, с которыми я когда-либо сталкивался. Проверьте это.

...