0

我正在尝试使用 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>

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

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

4

1 回答 1

1

我没有看到您定义了一个 url 来捕获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 正文中。

于 2013-07-20T17:36:54.697 回答