【问题标题】:Django 2 URL <int: > notation isn't behaving as expectedDjango 2 URL <int:> 符号的行为不符合预期
【发布时间】:2018-12-04 07:05:42
【问题描述】:

过去一周我一直在将平台从 django 1.11 迁移到 django 2,没有任何问题,直到今天,当我尝试更新我的网址时。我有这 3 行代码:

1. url(r'^track/(?P<track_id>[0-9]+)/user/playlists', views.music),
2. path(r'track/<int:track_id>/user/playlists', views.music),
3. re_path(r'^track/(?P<track_id>[0-9]+)/user/playlists',views.music),
  1. 在 django 1.11 中运行良好的原始行。
  2. 我为替换第 1 行而创建的新行。我删除了插入符号“^”并替换了 RegEx。
  3. 我现在正在使用的线路,因为它工作正常。

我的问题是当我使用第 2 行时我的测试失败,但在我使用第 3 行时通过了。什么可能导致这种行为?

PS:失败的测试只是将 14 传递给 URL 并检查响应的测试。响应应为 200,但改为 404。其实我在music方法里面试了pdb,但是测试没有停在那里就结束了,也就是说根本没进去。

self.check_response('/track/%d/user/playlists/' % 14)

【问题讨论】:

    标签: regex path python-3.5 django-urls django-2.0


    【解决方案1】:

    由于 'r',您仍在 2 中使用正则表达式。

    把它变成这样:

    path('track/&lt;int:track_id&gt;/user/playlists', views.music),

    更多详情可以查看here.

    【讨论】:

      猜你喜欢
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      • 2017-01-27
      • 2022-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多