发布表单后如何使用上下文重定向到另一个页面?

时间:2019-06-26 08:40:15

标签: python django

发布表单后,我想重定向到另一个页面,并使用上下文将一些数据发送到该页面。我需要向另一个页面发送字符串和布尔值,具体取决于到数据库的发布是否成功。

使用我的视图,呈现了admin.html,但URL未更新(它仍然显示表单页面)。我该如何实现

我尝试使用重定向。     返回重定向(reverse('app:view',kwargs = {'bar':FooBar})) 但是还没有运气。

def report_view(request):
    if request.method == 'POST':
        form = ReportForm(request.POST)
    if form.is_valid():
            report_title = form.cleaned_data['report_title']
            report_link = form.cleaned_data['report_link']
            new_report = Report(title = report_title, link = 
report_link)
            new_report.save()
            return render(request, 'dashboard/admin.html', {'title': 
Admin Page, 'added':True})

1 个答案:

答案 0 :(得分:0)

尽管可以作为url参数传递,但是您不能通过重定向传递上下文:

redirect(reverse('app:admin', kwargs={ 'title': 'title','added':True }))

如果要呈现上下文,可以编写两个视图:

例如:

def view1(request, newContext=None) : 
 ..
 ..
 context = {
 ..
 }
 context.update(newContext)
 ..
 return render(request, "../../xyz.html", context=context)
def view2(request) : 
 ..
 context = {
 ..
 }
 ..
 response = view1(request, context)
 return response