javascript - Django:在表编辑期间未访问 View

标签 javascript jquery python ajax django

我正在尝试使用 Django 编辑表中的条目。必要的代码如下:

urls.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'),
)

views.py

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')

编辑.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>

理想情况下,在编辑表中的值时,应该调用 editdb View ,但这种情况没有发生。

正在生成错误警报,指出请求中出现错误

我哪里出错了?

最佳答案

您的网址格式不正确。 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'),

关于javascript - Django:在表编辑期间未访问 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26902772/

相关文章:

javascript - 创建一个数组列表,该列表将具有基于旧数据和新数据的标志

javascript - express.js,如果删除下一个参数,错误处理程序将不起作用

java - 如何对长文本帖子进行分页

javascript - Bootstrap Jquery <li> 点击添加图标到列表

python - 在 python 中,使用函数的参数重命名变量

php - 将js值分配给php变量时出现问题

javascript - 没有 jQuery 的 OnClick

jquery - 多雇主对员工管理

python - 读取 Pandas 中以空格分隔的字符串数据

python - 如何在seaborn图表中循环执行子图