python - 在 django 中对 url1 执行任务后如何重定向到 url2?
问题描述
我有一个edit-scholarship.html,您可以在其中通过传递名称和类型来搜索奖学金,然后选择该奖学金并通过从 url传递奖学金 ID在update-scholarship.html中对其进行编辑。现在更新奖学金后,网址变为
http://127.0.0.1:8000/admin/updatescholarship/50
50 是传入 url 的奖学金 ID
现在,当我尝试进入项目中的仪表板时,网址变为
http://127.0.0.1:8000/admin/updatescholarship/dashboard
我不希望在 updatescholarship之后附加仪表板。网址应该是
http://127.0.0.1:8000/admin/dashboard
这是我的编辑奖学金视图
def admin_editscholarship(request):
if request.method == 'POST':
name = request.POST['sch_name']
type = request.POST['sch_type']
schdets = ScholarshipDetails.objects.filter(name = name,type = type)
if schdets is not None:
#if something exists in scholarship details, then print it
print('Scholarship found')
else:
schdets = None
return render(request,'admin-editscholarship.html',{'schdets':schdets})
这是我的更新奖学金视图
def admin_updatescholarship(request,pk=None):
#can update the new data in the selectd scholarship
if pk:
sch = ScholarshipDetails.objects.get(pk = pk)
if request.method == 'POST':
form = EditScholarshipForm(request.POST,instance=sch)
if form.is_valid():
form.save()
print('\nform saved')
args = {'form' : form}
messages.success(request,'Successfully updated')
return render(request,'admin-editscholarship.html',args)
这是我的urls.py
path('admin/dashboard',views.admin_dash),
path('admin/addscholarship',views.admin_addscholarship),
path('admin/editscholarship',views.admin_editscholarship),
url(r'^admin/updatescholarship/(?P<pk>\d+)$',views.admin_updatescholarship,name =
'updatescholarship'),
path('admin/students',views.admin_students),
path('admin/requests',views.admin_requests)
解决方案
您可以使用 django 重定向重定向到其他 url
from django.shortcuts import redirect
def fn_test(request):
task here
return redirect('path_to_redirect/')
推荐阅读
- html - 字体真棒图标显示一个框
- bash - 使用 `{` 和 `}` 语法的 Bash 多行
- c# - 如何使用键和值循环所有类变量
- haskell - 使用 cabal v2-install 构建可执行文件时冻结所有依赖项
- python - Python Bokeh 可能的错误,仅显示最后一个图
- c++ - 有没有办法在 C++ 中制作无锁“计数器”随机访问迭代器?
- php - 如何获取从 laravel foreach 返回的数组而不是 json 数组?
- javascript - 如何检查一个dom元素是否超过另一个?
- html - 背景图像不显示
- asp.net - 使用 Replace 函数从字符串中删除 "{ 字符