Django urls、视图、多个参数的正则表达式配置
Django urls, views, regex configuration for multiple parameters
我的问题是我目前无法使用这些代码跟踪特定的 post:
在urls.py中:
url(r'^class/(?P<class_name>[\w-]+)/(?P<subject_name>[\w-]+)/(?P<slug>[\w-]+)/$', highschool.lessonBasedHome, name='lesson_based_home'),
在views.py中:
def lessonBasedHome(request, class_name, subject_name, slug):
qs = Content.objects.filter(class_name__name = class_name, subject_name__name = subject_name)
qs1 = get_object_or_404(qs, slug = slug)
context = {
"qs1":qs1,
}
return render(request, 'lesson_based_home.html', context)
在lesson_based_home.html中:
{% block content_area %}
{{qs1.title}}
{% endblock content_area %}
但我不知道问题出在哪里。请帮忙。
[\w-]+
模式匹配一个或多个 (+
) 个字符,这些字符可以是字母、数字、下划线 (\w
) 或连字符 (-
)。只要子部分包含任何其他符号,就不会返回任何匹配项。
为了减少模式的限制,将所有 [\w-]+
替换为 [^/]+
,一种匹配 /
.
以外的一个或多个字符的模式
我的问题是我目前无法使用这些代码跟踪特定的 post:
在urls.py中:
url(r'^class/(?P<class_name>[\w-]+)/(?P<subject_name>[\w-]+)/(?P<slug>[\w-]+)/$', highschool.lessonBasedHome, name='lesson_based_home'),
在views.py中:
def lessonBasedHome(request, class_name, subject_name, slug):
qs = Content.objects.filter(class_name__name = class_name, subject_name__name = subject_name)
qs1 = get_object_or_404(qs, slug = slug)
context = {
"qs1":qs1,
}
return render(request, 'lesson_based_home.html', context)
在lesson_based_home.html中:
{% block content_area %}
{{qs1.title}}
{% endblock content_area %}
但我不知道问题出在哪里。请帮忙。
[\w-]+
模式匹配一个或多个 (+
) 个字符,这些字符可以是字母、数字、下划线 (\w
) 或连字符 (-
)。只要子部分包含任何其他符号,就不会返回任何匹配项。
为了减少模式的限制,将所有 [\w-]+
替换为 [^/]+
,一种匹配 /
.