dajaxice:将参数传递给python函数

时间:2013-06-26 13:54:52

标签: ajax django dajaxice

使用Dajaxice我想将参数传递给python函数。

在html文件中,我有以下声明

<a href="#" onclick="Dajaxice.myapp.sayhello(Dajax.process,{'dir':3} )"> <i class="icon"></i></a>

在我的ajax.ps文件中我有函数

@dajaxice_register
def sayhello(request, dir):
    print(dir)

如果我在html和python文件中删除第二个参数dir,它工作正常,但是有了dir,我收到错误消息“出错了。”

有人知道这里可能出现什么问题吗?

2 个答案:

答案 0 :(得分:1)

如果你使用Python 3. *,那么在模块dajaxIce中创建更改文件venv / lib / python3.2 / site-packages / dajaxice / views.py

    def safe_dict(d):
        """
        Recursively clone json structure with UTF-8 dictionary keys
        http://www.gossamer-threads.com/lists/python/bugs/684379
        """
        if isinstance(d, dict):
            return dict([(k, safe_dict(v)) for k, v in d.items()])
        elif isinstance(d, list):
            return [safe_dict(x) for x in d]
        else:
            return d

答案 1 :(得分:0)

将sayhello改为:

def sayhello(request):
  my_dict=json.loads(request.POST['argv'])
  dir=my_dict['dir']
  print(dir)