* 已编辑此问题 *
我有一个带有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))
非常感谢
答案 0 :(得分:0)
由于所有浏览器问题,通常最好不要自己执行原始 AJAX。我建议使用jQuery(以及其他许多东西),因为它已经处理了所有奇怪的事情。
查看jQuery AJAX API page,特别是查看jQuery.get()和jQuery.post()以了解传递params的方法。
观察:我没有在您指定给href的字符串上看到前导'/',这意味着它与页面的原始URL相关。这很容易引起问题。请记住,在调试AJAX时,Firefox和Firebug扩展是你的朋友。运行您的页面并查看标有Console
的标签。如果它报告错误我不会感到惊讶。
另外需要注意的一点是:jQuery taconite plugin是我遇到过的最甜蜜的AJAX扩展之一。看看吧。