2016-11-25 100 views
2

我收到的時候我試圖通過一個AJAX調用提交POST請求的響應405 METHOD NOT ALLOWEDDjango的 - 不允許的方法基於功能視圖(FBV)

"POST /events/profile_update/ HTTP/1.1" 405 0

我試圖設置這了最基本的觀點:

def profile_update(request): 

    if request.method == "POST": 
     name_form =forms.EventName(request.POST) 

     if name_form.is_valid(): 
      name = name_form.cleaned_data['name'] 
    else: 
     name_form = forms.EventName() 

    return render(request, 'event_edit_profile.html', {"name": name}) 

我urls.py:

urlpatterns = [ 
    url(r'^(?P<slug>[-\w]+)/update/$', views.EventProfileUpdateView.as_view(), name='event_profile_update'), 
    url(r'^profile_update/$', views.profile_update, name="profile_update"), 
] 

而且在我的模板,我使用x-editable內聯編輯提交請求:

<h1 id="name" data-type="text" data-pk="{{ object.id }}" data-url="{% url 'Events:profile_update' %}" data-title="Event Name" data-params="{csrfmiddlewaretoken:'{{csrf_token}}'}">{{ object.name }}</h1> 

請求似乎將通過,而沒有被因CSRF拒絕,因爲I don't get a 403,而是405 :

"POST /events/profile_update/ HTTP/1.1" 405 0 

出於某種原因,我似乎無法通過這個。任何人有什麼想法可以搞砸我?

回答

2

我打破了一條基本規則。這裏是修復:

urlpatterns = [ 
    url(r'^profile_update/$', views.profile_update, name="profile_update"), 
    url(r'^(?P<slug>[-\w]+)/update/$', views.EventProfileUpdateView.as_view(), name='event_profile_update'), 
]