У меня есть форма отправки данных для просмотра через метод POST. Моя проблема в том, что я не могу получить доступ к данным сообщения формы в deleteview. После того, как песня будет удалена, я хочу, чтобы пользователь был отправлен обратно на страницу описания альбома, к которой принадлежит песня. Мой код, как показано ниже:Django: Как использовать request.POST в виде удаления
форма (внутри album_detail.html):
<form action="{% url 'music:delete-song' pk=song.pk album_id=song.album_id %}" method="POST">
{% csrf_token %}
<input type="hidden" name="album_id" value="{{ song.album_id }}" />
<button type="submit" class="btn btn-danger btn-xs" role="button">Delete</button>
</form>
urls.py:
#----
app_name = 'music'
urlpatterns = [
#----
url(r'^album/(?P<pk>[0-9]+)/detail/$', views.AlbumDetail.as_view(), name='album-detail'),
url(r'^song/(?P<pk>[0-9]+)/delete/(?P<album_id>[0-9]+)/$', views.SongDelete.as_view(), name='delete-song'),
]
И, наконец, вид:
class SongDelete(DeleteView):
model = Song
album_id = request.POST.get('album_id')
success_url = reverse_lazy('music:album-detail', kwargs={'pk': album_id})
Элемент album_id нельзя установить, как указано выше. Как я могу установить album_id в post data album_id из формы, чтобы пользователь был отправлен обратно на URL-адрес альбома?
Просто добавляемое себя просить и это сработало! Я не тестировал ответ @ cutteeth, но я нашел, что это достаточно просто. Спасибо вам всем –