请我需要你的帮助,我正在尝试使用 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))
最佳答案
解决方案:问题是可编辑的 DIV 位于 {% for %} block 内,在这种情况下需要在 Javascript 中使用 .each ,如下所示...
$('.edit').each(function(){
$('.edit').editable('/categoryedit', {
});
});
并且没有必要在url(“/category/1”)中传递参数,最好使用...获取参数
c_id = request.POST.get('id')
View 必须是这样的:
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)
关于django jeditable 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12854907/