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

问题描述 投票:0回答:1

我有一个edit-scholarship.html,您可以在其中通过输入名称和类型来搜索奖学金,然后选择该奖学金,然后在update-scholarship.html中通过传递scholarship id。现在更新奖学金后,网址变为http://127.0.0.1:8000/admin/updatescholarship/50

50是传递给URL的奖学金ID

现在,当我尝试转到项目中的dashboard时,URL变为http://127.0.0.1:8000/admin/updatescholarship/dashboard

我不想在updatescholarship之后附加dashboard。网址应为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)
python django url redirect view
1个回答
0
投票
您可以使用Django重定向重定向到其他URL

from django.shortcuts import redirect def fn_test(request): task here return redirect('path_to_redirect/')

© www.soinside.com 2019 - 2024. All rights reserved.