找不到相关错误:找不到页面(404)

时间:2013-01-15 04:38:08

标签: django-forms django-templates django-views

显示以下错误:

  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):     尝试:         #将在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)

URL:

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'),

你能帮我找错吗?

1 个答案:

答案 0 :(得分: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 %}">  

希望解决它!