gpt4 book ai didi

python - 正则表达式匹配 2 条路由的 Django NoReverseMatch 异常

转载 作者:行者123 更新时间:2023-11-28 16:28:33 25 4
gpt4 key购买 nike

url(r'^v1/(statistics|analytics)/stats_bar$', views.stats_bar, name='stats_bar')

reverse('stats_bar')

抛出:未找到带有参数“()”和关键字参数“{}”的“stats_bar”的反转。尝试了 1 种模式:['v1/(statistics|analytics)/stats_bar$']

有没有办法操纵 Django 尝试的模式或其他简单的方法来处理这个问题?

Django==1.6.9

最佳答案

我认为 Django 正在将 (statics|analytics) 解释为变量的模式。我建议如下:

  1. 为同一 View 定义 2 个不同的 url:

    url(r'^v1/statistics/stats_bar$', views.stats_bar, name='stats_bar_statistics')
    url(r'^v1/analytics/stats_bar$', views.stats_bar, name='stats_bar_analytics')

    reverse('status_bar_statistics') # usage

    并在 View 中测试使用了哪个 url:

    if 'analytics' in request.path:
    # do something
    elif 'statistics' in request.path:
    # do otherthing
  2. 你用参数定义一个 url:

    url(r'^v1/ (?P<type>(statistics|analytics))/stats_bar$', views.stats_bar, name='stats_bar')

    reverse('status_bar', kwargs={'type': 'statistics'}) # usage

关于python - 正则表达式匹配 2 条路由的 Django NoReverseMatch 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34447198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com