【发布时间】:2017-03-04 16:00:56
【问题描述】:
我有一个通过 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 设置为表单中的帖子数据album_id,以便将用户发送回专辑详细URL?
【问题讨论】:
标签: python django model-view-controller