我有一个django应用程序,我有以下网址:
urlpatterns = patterns('',
url(r'^$', views.acadprogram, name='acadprogram'),
url(r'^(?P<program_code>\d+)/$', views.acadprogram2, name='programcode'),
)
这就是我的观点:
def acadprogram2(request, program_code):
name = Program_requirement_category.objects.get(name=program_code)
descendants = name.get_descendants(include_self=True)
return render_to_response("courses.html", {'nodes':descendants.all()}, context_instance = RequestContext(request))
在我的HTML中,我这样称呼这个URL:
<a ng-repeat="prog in programs | orderBy:'academic_program.program_title' | orderBy:'primary_program':true" href="/acadprog/{{prog.academic_program.acad_program_code}}/" ng-click="display.addprogram = false" class="list-group-item">
{{prog.academic_program.program_title}}
但是当我点击href时,django会抛出一个url not found错误。我哪里出错?
答案 0 :(得分:0)
根据评论......
你的Angular应用正在生成一个网址:“127.0.0.1:8000/acadprog/AS.SCIENCE”
这就是问题 - 网址模式需要一个数字(?P<program_code>\d+)
,因此这个网址与Django不匹配。
您可以将网址格式更改为:
url(r'^(?P<program_code>.+)/$', views.acadprogram2, name='programcode'),
...这将匹配任何字符中的1个或更多。