0

显示以下错误:

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

)

你能帮我找出错误吗?

4

1 回答 1

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 %}">  

希望解决!

于 2013-01-15T04:58:27.227 回答