django重定向导致重定向到下一页,但然后返回原始?

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

我的重定向功能导致了一些问题。我使用reverse来调用视图中的url,其中包含视图所需的参数。没有错误,在网址的浏览器中,它正确显示这些参数。然而,它似乎重定向到新的URL,但在请求新URL的新视图后,页面立即返回到原始视图,新的URL仍然显示在浏览器中。任何人都可以告诉我,如果我正确使用重定向功能或者我正在使用反向错误?

附:我删除了很多代码,因为StackOverflow不会让我发布所有代码。

家用/ urls.py

from django.conf.urls import url
from home import views

app_name = 'home'

urlpatterns = [
    url('^$', views.index, name='index'),
    url('^patient_summary/patientid=(?P<patient_id>\d+)&clinicid=(?P<clinic_id>\d+)/', views.patient_summary, name='patient_summary'),
    url('^patient_summary/patientid=(?P<patient_id>\d+)&clinicid=(?P<clinic_id>\d+)/careplanid=(?P<careplan_id>\d+)/', views.care_plan, name='care_plan'),
    ]

家用/ views.py

def patient_summary(request, token, patient_id, clinic_id):
    user = get_user(token)
    if request.method == "POST":
        if ('careplanselected' in request.POST):
            props = request.POST.get('careplan')
            props = props.split("@")
            CPID = props[0]
            cpname = props[1]
            my_dict = {'token': token, 'patient_id': patient_id, 'clinic_id': clinic_id, 'careplan_id': CPID}
            return redirect(reverse('home:care_plan', kwargs=my_dict)) 
    return render(request, 'home/patient_summary.html')

def care_plan(request, token, patient_id, clinic_id, careplan_id):
    user = get_user(token)
    care_plan = []
    cpname = '' 
    return render(request, 'home/care_plan.html' )
django django-views
1个回答
2
投票

您的网址格式缺少美元以标记网址的结尾。这意味着您的patient_summary视图将处理针对care_plan视图的请求。

将模式更改为:

url('^patient_summary/patientid=(?P<patient_id>\d+)&clinicid=(?P<clinic_id>\d+)/$', views.patient_summary, name='patient_summary'),
url('^patient_summary/patientid=(?P<patient_id>\d+)&clinicid=(?P<clinic_id>\d+)/careplanid=(?P<careplan_id>\d+)/$', views.care_plan, name='care_plan'),
© www.soinside.com 2019 - 2024. All rights reserved.