显示以下错误:
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(request): try: # 假设 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 = 模式('',
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'),
)
你能帮我找出错误吗?