简体   繁体   中英

django-form show form data after saving it

I want to show same data to user as posted by him using form after saving it in database. I am not getting the logic for it.

I am trying to do something like this:

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)

Is it ok ? Is there any better way to do it?

If you do it this way, a redirect of the "detail" page will resubmit the form. This is generally not desired behaviour.

A better way would be to create a detail view for you saved object (if you haven't already) and redirect the user to the detail view of that particular object:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM