[英]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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.