【发布时间】:2016-12-23 08:56:51
【问题描述】:
我有一个这样的 url 配置
urlpatterns = [
url(r'webhook/', include('foward_bot.telegram_API.urls', namespace='api_webhook'), name='webhook'),
]
在 telegram_API.urls 我有
urlpatterns = [
url(r'^(?P<token>[-_:a-zA-Z0-9]+)/$', TelegramView.as_view(), name='api_webhook'),
]
当我尝试以这种方式反向访问此网址时
webhook = reverse('webhook', args={instance.token})
我得到错误:
`Reverse for 'webhook' with arguments '(u'297704876:AAHiEy-slaktdaSMJfZtcnoDC-4HQYYDNOs',)' and keyword arguments '{}' not found. 0 pattern(s) tried: []`
我尝试了不同的变体,例如
webhook = reverse('webhook', kwargs={'token': instance.token}),
webhook = reverse('webhook:token', kwargs={'token': instance.token}),
但我总是类似NoReverseMatch错误
【问题讨论】:
-
只是出于好奇,您是否对正则表达式有更好的运气 -
^(?P<token>[[-_:\w\d]+)/$? -
@Sayse 根本没有
-
@Sayse 我已经尝试了很多选项,包括您建议的选项,我应该特别更新哪个选项?
-
主要是
reverse('api_webhook:api_webhook',因为在我看来这是最有可能的问题 -
作为最后一件事,只需将
webhook设置为 reverse 将创建的字符串 -'/webhook/297704876:AAHiEy-slaktdaSMJfZtcnoDC-4HQYYDNOs/'。这至少可以清楚地表明错误是与 url 正则表达式有关还是与反向
标签: django url-routing django-urls