django-form保存后显示表单数据

时间:2014-06-19 13:37:47

标签: python django django-forms

我希望在将数据保存到数据库后使用表单向用户显示相同的数据。 我没有得到它的逻辑。

我正在尝试做这样的事情:

def CreateDeal(request):
    if request.method == "POST":
        form = DealForm(request.POST)
        if form.is_valid():
            form.save(commit = True)
            data = form.data
            return render(request, '/path_to/deal_detail.html',data=data)

可以吗? 有没有更好的方法呢?

1 个答案:

答案 0 :(得分:0)

如果你这样做,重定向"详细信息"页面将重新提交表单。这通常不是期望的行为。

更好的方法是为您保存的对象创建详细视图(如果您还没有),并将用户重定向到该特定对象的详细视图:

from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse

def CreateDeal(request):
    if request.method == "POST":
        form = DealForm(request.POST)
        if form.is_valid():
            obj = form.save(commit=True)
            return HttpResponseRedirect(reverse('deal-detail-view', args=(obj.id,)))
            # or return HttpResponseRedirect(obj.get_absolute_url()) 
            # if `get_absolute_url` is defined