我正在尝试生成嵌套的url路径。到目前为止,我只能生成1级网址。当我尝试二级网址时,它不再被调用,它仍然只显示第一级网址,尽管浏览器上的地址栏确实指向二级网址。这是可能的还是我需要创建一个新的应用程序?
urls.py
from django.conf.urls import url, include
from django.views.generic import ListView, DetailView, TemplateView
from dashboard.models import IPARate,PCPRate
from dashboard import views
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^medicare/', ListView.as_view(queryset=IPARate.objects.all().order_by("id"), template_name='dashboard/medicare.html')),
url(r'^medicare/medicarepcp/$', ListView.as_view(queryset=PCPRate.objects.all().order_by("id"), template_name='dashboard/medicarepcp.html')),
url(r'^medicare/', views.medicaid, name='medicare'),
url(r'^medicare/medicarepcp/$', views.medicarepcp, name='medicarepcp'),
]
答案 0 :(得分:2)
您需要向BRPOP
正则表达式添加一个美元(行尾字符),以使其与r'^medicare/
匹配,但不匹配/medicare/
等其他网址。
medicare/medicarepcp/
第三和第四个正则表达式分别与第一个和第二个正则表达式相同。 Django将始终匹配前两个URL模式,因此您需要将第三个和第四个URL模式更改为其他模式。
答案 1 :(得分:0)
URL的顺序很重要,因为Django会对匹配请求的第一个URL模式做出反应。一个好习惯是把你所有的" sub"首先是网址,然后是该网页的最高级别,如果其他网站没有匹配则将其作为后备广告(即将您的' ^医疗保险/ $'最后一次)。