【发布时间】:2015-08-06 10:04:35
【问题描述】:
我是 JS、HTML、Django 和所有相关内容的新手,我无法通过阅读文档或使用 Google 自行解决问题。
我想在 django 环境中使用 x-editable 将内联更改保存到数据库中。下面的模板完美运行,但现在我想用新名称覆盖数据库条目。
我试图将代码简化为我的问题的相关部分。
models.py:
class MyClass(models.Model):
name = models.CharField(max_length=120)
views.py:
def list(request):
return render(request, 'list.html', {'list':MyClass.objects.all()}
urls.py:
url(r'^list/$', 'myapp.views.list', name='list'),
list.html:
{% extends "base.html" %}
{% block content %}
<script>
$(document).ready(function() {
$.fn.editable.defaults.mode = 'inline';
$('.name').editable({
});
});
</script>
<h1>Names</h1>
<div>
<table border='1'>
{% for l in list %}
<tr><td><a class="name">{{ l.name }}</a></td></tr>
{% endfor %}
</table>
</div>
{% endblock %}
----------------------------------------------- ---------
我最有希望的方法是创建一个更新视图。
def list_update(request, pk):
l = get_object_or_404(MyClass, pk=pk)
form = ListForm(request.POST or None, instance=l)
if form.is_valid():
form.save()
return redirect('list')
return render(request, '', {'form':form})
并将以下几行添加到上面的代码中:
urls.py
url(r'^update/(?P<pk>\d+)$', 'myapp.views.list_update', name='list_update'),
list.html
$('.name').editable({
pk: l.pk,
url: '{% url 'list_update' l.pk%}',
});
但是这种尝试会导致 NoReverseMatch 错误,并且 l.pk 似乎是空的。我感谢任何有关如何以正确方式执行此操作的帮助。
【问题讨论】:
-
我遇到了类似的问题,你有没有机会更新我们,让我们知道你是否设法解决了问题?
标签: django x-editable