我目前的网址格式定义如下:
url(r'^potato/(?P<slug1>[-\w])/(?P<slug2>[-\w]+)/potatoajax/$', views.potatoajax, name='potatoajax'),
在我的观点中有一个功能:
def potatoajax(request):
print 'Potato Ajax'
if request.method == 'POST':
print 'more potatoes'
else:
print 'dont print Potato AJax'
我的ajax请求如下:
var url = 'potatoajax/';
$.ajax({
url: url,
data: {
'hello': 'hello world',
'csrfmiddlewaretoken': getToken(),
},
type: 'POST',
dataType: 'json',
success: function (data) {
$('#message').html(data.message);
}
但是,我一直在接受404请求=(我强烈怀疑这与我在url模式中的路由有关,但不知道如何解决这个问题。
这是错误消息:
POST http://localhost:8000/potato/potato1/potato2/potatoajax/ 404 (Not Found)
如果我按照建议修改了以下网址:
url(r'^potato/(?P<slug1>[-\w]+)/(?P<slug2>[-\w]+)/potatoajax/$', views.potatoajax, name='potatoajax'),
由于/ potato / potato1 / potato2 / potatoajax /中的TypeError,我得到500张POST potatoajax()得到了一个意外的关键字参数'slug2'。
然而,这是另一个问题,所以如果需要我会发布另一个问题。
答案 0 :(得分:1)
在你的urls.py
中你没有slug1的乘数
url(r'^potato/(?P<slug1>[-\w]+)/(?P<slug2>[-\w]+)/potatoajax/$', views.potatoajax, name='potatoajax'),
你的观点将接受另外两个论点。
def potatoajax(request, slug1, slug2):
print 'Potato Ajax'
if request.method == 'POST':
print 'more potatoes'
else:
print 'dont print Potato AJax'