我正在尝试使用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(未找到)
答案 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正文中。