找不到错误:找不到页面(404)
Posted
技术标签:
【中文标题】找不到错误:找不到页面(404)【英文标题】:can not find the error: Page not found (404) 【发布时间】:2012-12-29 04:04:50 【问题描述】:显示以下错误:
Page not found (404)
Request Method: POST
Request URL: http://127.0.0.1:8000/events/toggle-attendance/%3E%3Cinput%20type=
Using the URLconf defined in std.urls, Django tried these URL patterns, in this order:
^events/ ^tonight/$ [name='ev_tonight']
^events/ ^create/$ [name='ev_create']
^events/ ^toggle-attendance/$ [name='ev_toggle_attendance']
^admin/
The current URL, events/toggle-attendance/><input type=, didn't match any of these.
模板:
<form method="POST" class="toggle_attendance_form" action="% url ev_toggle_attendance %>
<input type="hidden" name="event_id" value=" event.id " />
% if attending %
<input class="attendance unattend" type="submit" value="Unattend" />
% else %
<input class="attendance attend" type="submit" value="Attend" />
% endif %
</form>
查看:
def toggle_attendance(请求): 尝试: # 假设 post 参数中的值 event_id = int(request.POST['event_id'])
# couple of possible errors: no event_id in POST parameter or value can not casted as int
except (KeyError, ValueError):
# raising http404: means it couldnt be found
raise Http404
# getting the event where id= event_id
event = get_object_or_404(Event, id=event_id)
#
attendance, created = Attendance.objects.get_or_create(user=request.user,
event=event)
if created:
pass
# messages.add_message(request, messages.INFO, 'You are now attending %s.' % event)
else:
attendance.delete()
# messages.add_message(request, messages.INFO, 'You are no longer attending %s.' % event)
# Check to see whether the next variable in the POST parameters
next = request.POST.get('next', '')
if not next:
next = reverse('ev_tonight')
return HttpResponseRedirect(next)
toggle_attendance = login_required(toggle_attendance)
网址:
urlpatterns = patterns('',
url(r'^tonight/$', views.tonight, name='ev_tonight'),
url(r'^create/$', views.create, name='ev_create'),
url(r'^toggle-attendance/$', views.toggle_attendance, name='ev_toggle_attendance'),
)
你能帮我找出错误吗?
【问题讨论】:
查看服务器错误日志——它会告诉你请求是什么样的。这应该可以帮助您找到错误。 谢谢,它看起来像这样。 [14/Jan/2013 22:21:27]“POST /events/toggle-attendance/%3E%3Cinput%20type=HTTP/1.1”404 2594 也许如果您将请求更改为“GET”只是为了调试,您将在 URL 中看到请求的确切形成方式 %3E%3C 转换为><
- 知道它们为什么存在吗?
【参考方案1】:
找到了!您错过了
<form method="POST"
class="toggle_attendance_form" action="% url ev_toggle_attendance %>
应该是这样的
<form method="POST"
class="toggle_attendance_form" action="% url ev_toggle_attendance %">
希望能解决!
【讨论】:
以上是关于找不到错误:找不到页面(404)的主要内容,如果未能解决你的问题,请参考以下文章
URL 错误 404 找不到 Django 页面错误 x.html
使用 Django,当我尝试访问应该存在的页面时,为啥找不到 404 错误页面?