2017-03-01 20 views
0

我現在有一個URL模式定義如下:路由工作不適合我的AJAX請求

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 follwoing的建議:

url(r'^potato/(?P<slug1>[-\w]+)/(?P<slug2>[-\w]+)/potatoajax/$', views.potatoajax, name='potatoajax'), 

我得到一個500 POST由於在/土豆/ potato1一個TypeError/potato2/potatoajax/ potatoajax()得到了一個意想不到的關鍵字參數'slug2'。

但是,這是另一個問題,所以如果需要,我會發布另一個問題。

回答

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' 
+0

謝謝,我根據你剛剛提供的內容修改了這個問題,但是,因爲它是一個完全不同的問題,所以你的安裝者會很感激! – glls

+0

謝謝反正有點更新了答案。看它有效。 –

+0

呵呵,這是我所做的,感謝後續的想法,非常感謝 – glls