我试图不在应用程序的视图(实际上是控制器)中硬编码应用程序的URL。
代码如下所示:
event/view.py
def index(request):
try:
//do stuff with response
return render(request, 'rma/service.html', response)
except:
return redirect("/rma")
在这种情况下,应用程序安装在/ var / www / html / rma下的Web服务器上。但是在生产(或其他任何地方),它可以安装在任何子目录或html /
如何重定向到主页面,因为如果此特定页面失败,主页面将显示更好的逻辑(数据库中缺少的数据源,未导入的表格等)
我喜欢做类似的事情:
return redirect(<magic>.main.index)
甚至喜欢:
return redirect(APP_ROOT)
我发现的所有示例都是在html(模板)中重定向,而不是在view.py中的代码中重定向
有什么想法吗?
答案 0 :(得分:0)
return HttpResponseRedirect("/")
答案 1 :(得分:0)
您需要编辑2个文件,website / urls.py和views.py
在views.py中:
def handler404(request):
return HttpResponseRedirect('')
def handler500(request):
return HttpResponseRedirect('')
这定义了出现错误时要执行的操作,并且可以将代码更改为具有自定义错误页面。
在urls.py中:
handler404 = 'my_app.views.handler404'
handler500 = 'my_app.views.handler500'
用你正在使用的任何Django应用程序替换my_app(例如民意调查。)
此代码将代码定向到views.py文件中的代码。
注意:如果您希望它不仅仅重定向500和404错误,还需要将其他内容指向此视图。