Django: Nach der POST-Methode mit klassenbasierten Ansichten auf dieselbe Seite umleiten
Ich mache eine Django-App, die die Folgen von Fernsehsendungen protokolliert. Dies ist für eine Seite in einer bestimmten Show-Instanz. Wenn ein Benutzer klickt, um eine Staffel hinzuzufügen oder zu entfernen, möchte ich, dass die Seite sie in die gleiche Detailansicht umleitet. Ich habe sie jetzt im Index, der die Liste aller Show-Instanzen anzeigt.
show-detail.html
<form action="{% url 'show:addseason' show=show %}" method="post">
{% csrf_token %}
<button class="btn btn-default" type="submit">+</button>
</form>
<form action="{% url 'show:subtractseason' show=show %}" method="post">
{% csrf_token %}
<button class="btn btn-default" type="submit">-</button>
</form>
views.py
class ShowDetail(DetailView):
model = Show
slug_field = "title"
slug_url_kwarg = "show"
template_name = 'show/show-detail.html'
class AddSeason(UpdateView):
model = Show
slug_field = 'title'
slug_url_kwarg = 'show'
fields = []
def form_valid(self, form):
instance = form.save(commit=False)
instance.season += 1
instance.save()
return redirect('show:index')
class SubtractSeason(UpdateView):
model = Show
slug_field = 'title'
slug_url_kwarg = 'show'
fields = []
def form_valid(self, form):
instance = form.save(commit=False)
if (instance.season >= 0):
instance.season -= 1
else:
instance.season = 0
instance.save()
return redirect('show:index')
urls.py
url(r'^Ich erhalte eine Fehlermeldung, wenn ich es versuche
return redirect('show:detail')
Dies ist der Fehler
NoReverseMatch at /Daredevil/addseason/
Reverse for 'detail' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
, views.IndexView.as_view(), name='index'),
url(r'^about/Ich erhalte eine Fehlermeldung, wenn ich es versuche
return redirect('show:detail')
Dies ist der Fehler
NoReverseMatch at /Daredevil/addseason/
Reverse for 'detail' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
, views.AboutView.as_view(), name='about'),
# form to add show
url(r'^add/Ich erhalte eine Fehlermeldung, wenn ich es versuche
return redirect('show:detail')
Dies ist der Fehler
NoReverseMatch at /Daredevil/addseason/
Reverse for 'detail' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
, views.ShowCreate.as_view(), name='show-add'),
# edit show
#url(r'^(?P<show>[\w ]+)/edit/Ich erhalte eine Fehlermeldung, wenn ich es versuche
return redirect('show:detail')
Dies ist der Fehler
NoReverseMatch at /Daredevil/addseason/
Reverse for 'detail' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
, views.ShowUpdate.as_view(), name='show-update'),
# delete show
url(r'^(?P<show>[\w ]+)/delete/Ich erhalte eine Fehlermeldung, wenn ich es versuche
return redirect('show:detail')
Dies ist der Fehler
NoReverseMatch at /Daredevil/addseason/
Reverse for 'detail' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
, views.ShowDelete.as_view(), name='show-delete'),
# signup
url(r'^register/Ich erhalte eine Fehlermeldung, wenn ich es versuche
return redirect('show:detail')
Dies ist der Fehler
NoReverseMatch at /Daredevil/addseason/
Reverse for 'detail' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
, views.UserFormView.as_view(), name='register'),
# login
url(r'^login/Ich erhalte eine Fehlermeldung, wenn ich es versuche
return redirect('show:detail')
Dies ist der Fehler
NoReverseMatch at /Daredevil/addseason/
Reverse for 'detail' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
, views.LoginView.as_view(), name='login'),
# logout
url(r'^logout/Ich erhalte eine Fehlermeldung, wenn ich es versuche
return redirect('show:detail')
Dies ist der Fehler
NoReverseMatch at /Daredevil/addseason/
Reverse for 'detail' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
, views.LogoutView.as_view(), name='logout'),
url(r'^error/Ich erhalte eine Fehlermeldung, wenn ich es versuche
return redirect('show:detail')
Dies ist der Fehler
NoReverseMatch at /Daredevil/addseason/
Reverse for 'detail' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
, views.ErrorView.as_view(), name='error'),
url(r'^(?P<show>[\w ]+)/Ich erhalte eine Fehlermeldung, wenn ich es versuche
return redirect('show:detail')
Dies ist der Fehler
NoReverseMatch at /Daredevil/addseason/
Reverse for 'detail' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
, views.ShowDetail.as_view(), name='show-detail'),
url(r'^(?P<show>[\w ]+)/addseason/Ich erhalte eine Fehlermeldung, wenn ich es versuche
return redirect('show:detail')
Dies ist der Fehler
NoReverseMatch at /Daredevil/addseason/
Reverse for 'detail' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
, views.AddSeason.as_view(), name='addseason'),
url(r'^(?P<show>[\w ]+)/subtractseason/Ich erhalte eine Fehlermeldung, wenn ich es versuche
return redirect('show:detail')
Dies ist der Fehler
NoReverseMatch at /Daredevil/addseason/
Reverse for 'detail' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
, views.SubtractSeason.as_view(), name='subtractseason'),
url(r'^(?P<show>[\w ]+)/addepisode/Ich erhalte eine Fehlermeldung, wenn ich es versuche
return redirect('show:detail')
Dies ist der Fehler
NoReverseMatch at /Daredevil/addseason/
Reverse for 'detail' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
, views.AddEpisode.as_view(), name='addepisode'),
url(r'^(?P<show>[\w ]+)/subtractepisode/Ich erhalte eine Fehlermeldung, wenn ich es versuche
return redirect('show:detail')
Dies ist der Fehler
NoReverseMatch at /Daredevil/addseason/
Reverse for 'detail' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
, views.SubtractEpisode.as_view(), name='subtractepisode'),
Ich erhalte eine Fehlermeldung, wenn ich es versuche
return redirect('show:detail')
Dies ist der Fehler
NoReverseMatch at /Daredevil/addseason/
Reverse for 'detail' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []