代码之家  ›  专栏  ›  技术社区  ›  ravioli

使用参数命名URL时的Django - NoReVeMeCATCH错误

  •  1
  • ravioli  · 技术社区  · 6 年前

    我试图用一个带有参数的URL来构建这个链接:

    http://127.0.0.1:8000/wakemeup/admin/list/colegio

    参数是后面的字符串 .../list/ (在这种情况下,“Celejo”)。我有一个 print() 中的语句 admin_list 视图,它显示参数得到正确提取。但是,当我尝试构建url时:

    <a href="{% url 'wakemeup:admin_list' list_type=colegio %}">Colegios</a>
    

    我得到这个错误:

    NoReverseMatch at /wakemeup/admin/list/colegio
    Reverse for 'admin_list' with keyword arguments '{'list_type': ''}' not found. 1 pattern(s) tried: ['wakemeup/admin/list/(?P<list_type>\\w+)$']
    Request Method: GET
    Request URL:    http://127.0.0.1:8000/wakemeup/admin/list/colegio
    Django Version: 2.0.1
    Exception Type: NoReverseMatch
    Exception Value:    
    Reverse for 'admin_list' with keyword arguments '{'list_type': ''}' not found. 1 pattern(s) tried: ['wakemeup/admin/list/(?P<list_type>\\w+)$']
    

    VIEW

    def admin_list(request, list_type):
        print(list_type)
        return index(request)
    

    URLS.Py

    url(r'^admin/list/(?P<list_type>\w+)$', views.admin_list, name="admin_list"),
    

    我还尝试使用一个未命名的参数,但这不起作用。

    1 回复  |  直到 6 年前
        1
  •  0
  •   markwalker_    6 年前

    要确认您的评论后的答案,请记住将模板url kwargs正确格式化为字符串;

    {% url 'wakemeup:admin_list' list_type='colegio' %}
    

    为了进一步阅读网址上的文件,这里有; https://docs.djangoproject.com/en/2.0/topics/http/urls/