【问题标题】:Django urls, views, regex configuration for multiple parameters多个参数的 Django url、视图、正则表达式配置
【发布时间】:2017-06-11 18:34:19
【问题描述】:

我的问题是我目前无法使用这些代码跟踪特定帖子:

在 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)

在 course_based_home.html 中:

{% block content_area %}
{{qs1.title}}
{% endblock content_area %}

但我不知道问题出在哪里。请帮忙。

【问题讨论】:

  • 好吧,如果您不知道自己遇到了什么问题,我们也不知道。
  • 我在上面提到我无法跟踪特定的帖子
  • 但是“跟踪特定帖子”是什么意思?你看到了什么?你得到什么错误?不应该发生什么,或者不应该发生什么?你在问什么?
  • 也许您的[\w-]+ 过于严格?尝试用[^/]+替换所有[\w-]+
  • 嗨@WiktorStribiżew,你说得对。你的把戏太棒了。我已经应用它并且运行良好。感谢老板,也感谢 DanielRoseman 为我提供的帮助。

标签: python regex django django-views django-urls


【解决方案1】:

[\w-]+ 模式匹配一​​个或多个 (+) 字符,这些字符可以是字母、数字、下划线 (\w) 或连字符 (-)。每当子部分包含任何其他符号时,都不会返回任何匹配项。

为减少该模式的限制,请将所有[\w-]+ 替换为[^/]+,这是一种匹配除/ 之外的一个或多个字符的模式。

【讨论】:

    猜你喜欢
    • 2017-12-01
    • 2016-04-18
    • 2019-01-15
    • 2012-02-21
    • 2011-07-20
    • 2011-08-17
    • 2017-09-12
    • 2014-01-31
    相关资源
    最近更新 更多