Python 在Django中获取NoReverseMatch错误
最奇怪的是,我只是从程序的工作部分复制了下面的代码,只是切换了名称,所有的基础都是一样的 错误:Python 在Django中获取NoReverseMatch错误,python,django,Python,Django,最奇怪的是,我只是从程序的工作部分复制了下面的代码,只是切换了名称,所有的基础都是一样的 错误: NoReverseMatch at /profile/1/ Reverse for 'follow_user_add' with arguments '(1,)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['profile/follow/'] ulrs.py: url(r'^profile/', include('basi
NoReverseMatch at /profile/1/
Reverse for 'follow_user_add' with arguments '(1,)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['profile/follow/']
ulrs.py:
url(r'^profile/', include('basics.urls')),
basics/url.py:
url(r'^follow/', 'basics.views.add_user_follower', name='follow_user_add'),
url(r'^(?P<pk>\d+)/', UserDetailView.as_view(), name='users_detail'),
url(r'^', UserListView.as_view(), name='users_list'),
和模板:
<form action="{% url 'follow_user_add' user_object.id %}" method="post">{% csrf_token %}
<input type="submit" value="follow" />
</form>
{%csrf\u令牌%}
我刚刚发现了你的错误,你这样给出了url
url(r'^follow/', 'basics.views.add_user_follower', name='follow_user_add'),
action="{% url 'follow_user_add' user_object.id %}"
def add_user_follower(request, pk ):
但在这样的模板中
url(r'^follow/', 'basics.views.add_user_follower', name='follow_user_add'),
action="{% url 'follow_user_add' user_object.id %}"
def add_user_follower(request, pk ):
所以上面的url是这样匹配的/profile/follow/1/
。但是你的url/profile/follow/
在这样的观点下,
url(r'^follow/', 'basics.views.add_user_follower', name='follow_user_add'),
action="{% url 'follow_user_add' user_object.id %}"
def add_user_follower(request, pk ):
你犯了这个错误
Reverse for 'follow_user_add' with arguments '(1,)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['profile/follow/']
我的解决方案是你将url与pk匹配,但你没有这样的模式。所以你需要这样说
url(r'^follow/(?P<pk>\d+)/$', 'basics.views.add_user_follower', name='follow_user_add'),
url(r'^follow/(?P<pk>\d+)/$', 'basics.views.add_user_follower', name='follow_user_add'),
url(r'^(?P<pk>\d+)/$', UserDetailView.as_view(), name='users_detail'),
url(r'^$', UserListView.as_view(), name='users_list'),
url(r'^follow/(?P\d+)/$,“basics.views.add\u user\u follower”,name='follow\u user\u add'),
注意:您基本上错过了(?p\d+)
模式。希望这对你有帮助
更新:以这种方式更改URL
url(r'^follow/(?P<pk>\d+)/$', 'basics.views.add_user_follower', name='follow_user_add'),
url(r'^follow/(?P<pk>\d+)/$', 'basics.views.add_user_follower', name='follow_user_add'),
url(r'^(?P<pk>\d+)/$', UserDetailView.as_view(), name='users_detail'),
url(r'^$', UserListView.as_view(), name='users_list'),
url(r'^follow/(?P\d+)/$,“basics.views.add\u user\u follower”,name='follow\u user\u add'),
url(r'^(?P\d+/$),UserDetailView.as_view(),name='users_detail'),
url(r'^$',UserListView.as_view(),name='users_list'),
谢谢您的评论!我更改了url,仍然出现错误:找不到参数为“(“”,)”且关键字参数为“{}”的“follow_user_add”的反向。尝试了1种模式:[“profile/follow/(?P\\d+/$”]
@Harkonnen我更新了我的答案。请检查一下。@Harkonnen我在['profile/follow/(?P\\d+/$')]
中找到了\\d+
。您需要替换为\d+
。这个``字,嗯。。我仍然在['profile/follow/(?P\\d+/$')和double\'中遇到错误,但在我的URL中它的r'^follow/(?P\d+/$)。也许这里有问题?action=“{%url”follow\u user\u add”user\u object.id%}”确定最后一次尝试action=“{%url follow\u user\u add user\u object.id%}”