Django - 基于函数的视图 (FBV) 上不允许的方法
Django - Method Not Allowed on Function Based View (FBV)
当我尝试通过 AJAX 调用提交 POST 请求时收到 405 METHOD NOT ALLOWED
响应:
"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>
鉴于 I don't get a 403,该请求似乎正在通过,并且并未因 CSRF 而被拒绝,而是 405:
"POST /events/profile_update/ HTTP/1.1" 405 0
出于某种原因,我似乎无法克服这个问题。任何人都知道什么会把我搞砸吗?
我违反了一个基本规则。这是修复:
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'),
]
当我尝试通过 AJAX 调用提交 POST 请求时收到 405 METHOD NOT ALLOWED
响应:
"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>
鉴于 I don't get a 403,该请求似乎正在通过,并且并未因 CSRF 而被拒绝,而是 405:
"POST /events/profile_update/ HTTP/1.1" 405 0
出于某种原因,我似乎无法克服这个问题。任何人都知道什么会把我搞砸吗?
我违反了一个基本规则。这是修复:
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'),
]