X可编辑的django和jquery yu

时间:2013-07-20 16:47:47

标签: ajax django jquery-ui

我正在尝试使用X Editable更新字段,但直到最后我都没有。

这是我的代码:

#views.py

def update_task(request, task_id):
if request.is_ajax():
    task = request.GET.get('task')
    updated_task = Task.objects.get(pk=task_id)
    updated_task.task = task
    updated_task.save()
        return HttpResponse('true')
else:
    return HttpResponse('not ajax')

#urls.py

url(r'^update_task/(?P<task_id>\d+)/$', 'todo.views.update_task', name='update_task'),

#html file
<script>
    $(document).ready(function () {
    $("#task").editable({
        type: 'text',
        pk: 144,
        url: '/update_task/144/',
        title: 'Enter task',
        });
    });
</script>

当我尝试更新时,控制台会给我:

  

link / update_task / 144 404(未找到)

1 个答案:

答案 0 :(得分:1)

我没有看到您定义了一个用于捕获task_id

的网址

我认为您需要将task_id放在参数中,例如url + '?task_id=144

如果您这样做,则需要将javascript行更改为:

url: '/update_task/' + '?task_id=144',

或者,你需要保持原样,并在你的url conf中添加一行来捕获参数:

url(r'^update_task/(?P<task_id>\d+)/$', 'todo.views.update_task', name='update_task'),

然后在你的观点中:

def update_task(request, task_id=None):#if task_id is optional, set it to =None or something
    if request.is_ajax():
        do stuff here with task_id

另外,您需要取出task_id = request.GET.get('task_id')

因为task_id不在GET正文中。