2013-07-20 62 views
0

我试图更新一个字段使用X可编辑但我不会让它结束。X可编辑django和jquery yu

这里是我的代码:

#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> 

当我试图更新控制台给我:

链接/ update_task/144 404(未找到)

回答

1

我没有看到你有一个url被定义来捕获task_id

我认为你需要在参数中输入task_id,所以类似url + '?task_id=144

如果你这样做,你需要改变你的JavaScript线,看起来像这样:

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

,或者你需要离开它是,并且添加一行到您的网址的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主体中。

+0

它在页面上更新,但在数据库中没有:(我选择修改url。任何想法为什么?我更新了代码。 – jabez