【问题标题】:passing a value to an HttpResponse request将值传递给 HttpResponse 请求
【发布时间】:2010-12-30 07:51:26
【问题描述】:

我有一个 urlpattern,它带来了一个允许查看模型实例字段的模板:

(r'^display/(?P<id>\w+)/', display_record),

我还有一个允许编辑单个实例的视图功能。当对象被保存时,它只是返回到相同的模板:

if form.is_valid():
        form.save()
        return HttpResponseRedirect('/')

保存后,如何返回显示模板,而不是刷新相同的视图? 代码如下所示,但我需要一种将对象“id”传递给 HttpResponse 请求的方法:

def edit_record(request, id):
        if request.method == 'POST':
                a=ProjectRecord.objects.get(pk=id)
                form = RecordForm(request.POST, instance=a)
                if form.is_valid():
                        form.save()
                        return HttpResponseRedirect**('/display/(?P<id>\w+)/')**
        else:
                a=ProjectRecord.objects.get(pk=id)
                form = RecordForm(instance=a)
        return render_to_response('productionModulewire.html', {'form': form})

【问题讨论】:

    标签: django django-views


    【解决方案1】:

    你把事情复杂化了。你已经知道 ID 是什么了,为什么不能把它放回 URL 中呢?

    return HttpResponseRedirect('/display/%s/' % id)
    

    或者,更好,因为它不会将您绑定到特定的硬编码 URL:

    return HttpResponseRedirect(reverse('edit_record', kwargs={'id':id}))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-22
      • 1970-01-01
      • 2018-07-11
      • 1970-01-01
      相关资源
      最近更新 更多