【问题标题】:Context with Render page in Django appDjango应用程序中的渲染页面上下文
【发布时间】:2014-06-09 06:10:48
【问题描述】:

在我的 djangoApp 中,views.py 我有:

status = True
context = {'status': status ,
           "form":ProfileForm()
          }
    return render(request, "sample/Newsample.html", context)

如果我想使用带有重定向功能的上下文怎么办?例如:

status = True
context = {'status': status ,
           "form":ProfileForm()
          }
    return redirect("sample/Newsample.html", context) - this does not work!!

如何在重定向功能中使用上下文?

【问题讨论】:

  • 你到底想做什么?
  • 我的模板中有一个名为 status 的变量,当 status var 为 true 时会显示内容。我想通过 redirect() 函数将此状态变量传递给 Newsample.html。
  • 您将重定向与渲染混淆了。重定向将您发送到一个新的网址。 Django 将处理此 url,因为它处理任何其他 http 请求并在适当的视图中创建任何上下文。您可以将 url、url 名称或模型(只要它定义为 get_absoluteurl() )传递给重定向。文档:docs.djangoproject.com/en/dev/topics/http/shortcuts/#redirect 您通常不会在重定向视图中创建上下文对象。好吧,如果您的视图接受一个上下文变量(这将小于正统),您可以发送一个,但这有点必要
  • 但如果您愿意,您也可以将它们与一些 get 变量一起发送

标签: python django


【解决方案1】:

redirect 函数没有任何模板作为参数。它需要视图名称或 url 作为第一个参数。

检查这是 redirect 所需的结构。

redirect(to[, permanent=False], *args, **kwargs)

如果你想通过重定向发送数据,试试这个:

def my_view(request):
    ...
    return redirect('some-view-name', status=True)

【讨论】:

  • 试过这个,sry它不能这样工作,还有其他解决方案吗?
  • 只能粘贴代码,表示你已经尝试过了。
  • 返回重定向("sample/Newsample.html", status=True)
  • 第一个参数应该是视图名称,而不是 html 文件路径。重定向(到[,永久=假],*args,**kwargs)
猜你喜欢
  • 1970-01-01
  • 2014-11-03
  • 1970-01-01
  • 2014-08-04
  • 2013-12-28
  • 1970-01-01
  • 2015-08-22
  • 2019-01-14
  • 2019-01-05
相关资源
最近更新 更多