我想在保存模型后重新编辑页面。当我按下保存按钮,页面重定向,但没有保存任何东西。
def channelAdd(request):
if request.method == 'POST':
form = ChannelForm(request.POST)
if form.is_valid():
channelid = form.cleaned_data['channelid']
form.save()
return HttpResponseRedirect(reverse('updateChannelInfo', args=[channelid]))
else:
form = ChannelForm()
return render(request, 'web/channelAdd.html', {'form':form})
答案 0 :(得分:1)
这将使您更接近解决方案。如果您有“更新渠道信息”,那么我并不乐观。作为urls.py中的名称(所以请仔细检查)。我认为这里的复杂性是要发送正确的channelId
def channelAdd(request):
if request.method == 'POST':
form = ChannelForm(request.POST)
if form.is_valid():
channelid = form.cleaned_data['channelid']
form.save()
return HttpResponseRedirect(reverse('updateChannelInfo', args = [self.object.id])))
else:
form = ChannelForm()
return render(request, 'web/channelAdd.html', {'form':form})
如果您愿意分享您的urls.py和forms.py文件,这有助于将正确的名称转换为参数
我在表单提交后使用动态直接成功的另一种方法是使用
def add_channel (request):
if request.method == 'POST':
form = ChannelForm(request.POST)
if form.is_valid():
channel.save()
return HttpResponseRedirect(reverse('channel_detail', args=[channel.id]))
else:
form = ChannelForm()
return render(request, 'channel_example.html', {'form': form})
答案 1 :(得分:-1)
像这样编辑您的视图,
if form.is_valid():
form.save()
return redirect('updateChannelInfo', channelId=self.object.id)