从JavaScript调用Django URL

时间:2010-09-24 19:29:43

标签: javascript django django-urls

* 已编辑此问题 *

我有一个带有flash对象的Django模板。模板本身继承自主模板,位于名为info的块中。一切都运行正常!

单击flash对象时,它会在一个单独的js文件中调用带有参数的JavaScript回调函数。在这个函数中,我可以使用像

这样的东西加载另一个Django模板
  function myCallBack(param){
        location.href = 'crc_region_cities' // (Django url). 
  }

我想知道的是如何将参数param(字符串)传递给该URL,以便使用相同名称的视图函数:def crc_region_cities选择它并进行相应的查询..

额外信息:

新URL调用一个呈现模板的视图,该模板再次继承与前一个模板相同的主模板,并驻留在同一个块... info中。

有没有更好的方法来做到这一点......?请记住,我的flash对象使用字符串参数调用javascript回调函数,因此我必须以某种方式从那里操纵新模板,同时将字符串参数传递给URL。在代码下面你可以看到视图函数的第二个参数叫做region。这是我需要通过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 :(得分:0)

由于所有浏览器问题,通常最好不要自己执行原始 AJAX。我建议使用jQuery(以及其他许多东西),因为它已经处理了所有奇怪的事情。

查看jQuery AJAX API page,特别是查看jQuery.get()和jQuery.post()以了解传递params的方法。

观察:我没有在您指定给href的字符串上看到前导'/',这意味着它与页面的原始URL相关。这很容易引起问题。请记住,在调试AJAX时,Firefox和Firebug扩展是你的朋友。运行您的页面并查看标有Console的标签。如果它报告错误我不会感到惊讶。

另外需要注意的一点是:jQuery taconite plugin是我遇到过的最甜蜜的AJAX扩展之一。看看吧。