在django中对url1执行任务后,如何重定向到url2



我有一个编辑奖学金.html,您可以在其中通过传递名称和类型来搜索奖学金,然后选择该奖学金并在更新奖学金.html中通过从url传递奖学金id来编辑它。现在更新奖学金后,网址变成http://127.0.0.1:8000/admin/updatescholarship/50

50是传递到url 的奖学金id

现在,当我尝试转到项目中的仪表板时,url变成http://127.0.0.1:8000/admin/updatescholarship/dashboard

我不希望仪表板被附加在更新奖学金之后。url应为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/')

最新更新