Javascript Django:在编辑表期间未访问视图
我正在尝试使用Django编辑表中的条目。必要的代码如下所示: url.pyJavascript Django:在编辑表期间未访问视图,javascript,jquery,python,ajax,django,Javascript,Jquery,Python,Ajax,Django,我正在尝试使用Django编辑表中的条目。必要的代码如下所示: url.py from django.conf.urls import patterns, url, include from updatedb import views urlpatterns = patterns('',url(r'^$', views.index, name='index'), url(r'^submit', views.submit, name='sub
from django.conf.urls import patterns, url, include
from updatedb import views
urlpatterns = patterns('',url(r'^$', views.index, name='index'),
url(r'^submit', views.submit, name='submit'),
url(r'^edit', views.edit, name='edit'),
url(r'^editdb', views.editdb, name='editdb'),
)
from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from updatedb.models import Data
from django.core.urlresolvers import reverse
from django.views.decorators.csrf import csrf_exempt
def index(request):
return render(request, 'updatedb/data.html')
def submit(request):
first = request.POST["first"]
second = request.POST["second"]
d = Data()
d.first = first
d.second = second
print first
print second
d.save()
if request.POST.get("submit"):
qset = Data.objects.all()
return render(request, 'updatedb/results.html', {'queryset':qset})
@csrf_exempt
def edit(request):
qset = Data.objects.all()
return render(request, 'updatedb/edit.html', {'queryset':qset})
@csrf_exempt
def editdb(request):
print "hi"
print request.POST.get["data"]
return render(request, 'updatedb/editdb.html')
视图.py
from django.conf.urls import patterns, url, include
from updatedb import views
urlpatterns = patterns('',url(r'^$', views.index, name='index'),
url(r'^submit', views.submit, name='submit'),
url(r'^edit', views.edit, name='edit'),
url(r'^editdb', views.editdb, name='editdb'),
)
from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from updatedb.models import Data
from django.core.urlresolvers import reverse
from django.views.decorators.csrf import csrf_exempt
def index(request):
return render(request, 'updatedb/data.html')
def submit(request):
first = request.POST["first"]
second = request.POST["second"]
d = Data()
d.first = first
d.second = second
print first
print second
d.save()
if request.POST.get("submit"):
qset = Data.objects.all()
return render(request, 'updatedb/results.html', {'queryset':qset})
@csrf_exempt
def edit(request):
qset = Data.objects.all()
return render(request, 'updatedb/edit.html', {'queryset':qset})
@csrf_exempt
def editdb(request):
print "hi"
print request.POST.get["data"]
return render(request, 'updatedb/editdb.html')
edit.html
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
function clickable(ele)
{
var value = prompt("Enter the details");
if(value)
{
ele.innerHTML = value;
var xmlhttp;
$.ajax({
url : 'editdb',
type: "POST",
data: {data: value},
success: function(data){
if(!data)
alert("Data:"+data);
},
error: function(){
alert("Error in the request");
}
});
//$.post("editdb.html", {data: value});
}
}
</script>
</head>
<body>
<table>
<tr>
<th>Name</th>
<th>Phone Number</th>
</tr>
{% for record in queryset %}
<tr>
<td onClick="clickable(this)"> {{record.first}} </td>
<td onClick="clickable(this)"> {{record.second}}</td>
</tr>
{%endfor%}
</table>
</body>
</html>
功能可点击(ele)
{
var值=提示(“输入详细信息”);
如果(值)
{
ele.innerHTML=值;
var-xmlhttp;
$.ajax({
url:'editdb',
类型:“POST”,
数据:{data:value},
成功:功能(数据){
如果(!数据)
警报(“数据:”+数据);
},
错误:函数(){
警报(“请求中的错误”);
}
});
//$.post(“editdb.html”,{data:value});
}
}
名称
电话号码
{queryset%中记录的%s}
{{record.first}
{{record.second}}
{%endfor%}
理想情况下,在编辑表中的值时,应该调用editdb视图,但这不会发生
正在生成错误警报,提示请求中出现错误
我哪里做错了 您的URL格式错误。
edit
URL也将始终与editdb
匹配,因此永远不会到达另一个URL。确保在以下情况下终止它们:
url(r'^submit$', views.submit, name='submit'),
url(r'^edit$', views.edit, name='edit'),
url(r'^editdb$', views.editdb, name='editdb'),
您的ajax调用似乎不合适,因为您没有在success方法中检查响应。您正试图使用editdb视图函数呈现模板,我认为它应该是json对象。@TanveerAlam我在视图editdb中最终要做的是根据编辑页面上所做的更改编辑数据库中的数据。因为我刚刚开始,所以还没有完全了解。另外,我需要在成功函数中检查什么?show response(chrome(右键单击页面)-“inspect element”->Network->然后执行ajax调用)在$.ajax中的url属性不应该是
url:“{%url'editdb'%}”
?@danielcorreia在这样做时,我得到了带参数的'editdb'和关键字参数'{}的相反结果'未找到
。我该怎么办?完全是新手。对不起,你能告诉我更多关于错误格式的URL吗?比如做什么和不做什么?