2

请帮助我,我正在尝试使用 jeditable 来编辑 {% for in %} 内的表上的字段。

可编辑的 DIV:

<td><div class="edit" id="{{ c.id }}">{{ c.name|safe }}</div></td>

可编辑代码:

<script>
    $(document).ready(function(){
      $('.edit').editable('/categoryedit/{{ c.id }}/', {
        style: 'display: inline'    
        });
    });
</script>

网址:

url(r'^categoryedit/(?P<id>\d+)/$', 'pos.views.CategoryEdit'),

看法:

def CategoryEdit(request, category_id):
  id = request.POST.get('category_id', '')
  value = request.POST.get('value', '')

  categoria = Category.objects.get(pk=id)
  categoria.name = value
  categoria.save()

  return HttpResponse(escape(value))
4

2 回答 2

2

解决方案:问题是可编辑的 DIV 在 {% for %} bucle 内,在这种情况下需要使用 .each 和这样的 Javascript ......

$('.edit').each(function(){
                $('.edit').editable('/categoryedit', {

                });
            });

并且没有必要在 url ("/category/1") 中传递参数,而是更好地使用...获取参数

c_id = request.POST.get('id')

视图必须是这样的:

def CategoryEdit(request):
if request.is_ajax():
    if request.method == 'POST':
        txt = request.POST.get('value')
        c_id = request.POST.get('id')

        categoria = Category.objects.get(pk=c_id)

        categoria.name = txt

        categoria.save()

        return HttpResponse(txt)
于 2012-10-23T22:57:37.187 回答
0

您可能需要将 CSRF 数据添加到您的 javascript。我刚遇到这个并在这里发布: Django and JEditable: CSRF error

确定查看的一种方法是使用firebug并查看从 Django 返回的 ajax 响应。(如果缺少 CSRF 信息,Jeditable AJAX 调用会引发 403 Forbidden 错误。)

于 2012-10-22T20:54:19.963 回答