我有这个标签<a href = '/mysite/goto_home/Yax/'>Yax</a>
我想如果用户点击它,他/她应该被重定向到 URL :
url(r'^user/(?P<user_id>\d+)/(?P<user_name>[-\w]+)/$', views.user_profile, name='user_profile')
但它给了我NoReverseMatch at /mysite/goto_home/Yax/
Reverse for 'user_profile' with arguments '()' and keyword arguments '{'user_id': 2, 'user_name': u'Mokwa'}' not found. 1 pattern(s) tried: [u'mysite/user/(?P<user_id>\\d+)/(?P<user_name>[-\\w]+)/$']
Views.py :
def profile(request, user_name):
try:
user = Users.objects.get(username = user_name)
except Users.DoesNotExist:
user = none
if user is not None:
return HttpResponseRedirect(reverse('mysite:user_profile', kwargs={'user_id': int(user.id), 'user_name':user.name}))
def user_profile(request, user_id, user_name):
pass
我该如何解决这个问题?
答案 0 :(得分:0)
您使用"mysite:user_profile"
进行反向调用,但该URL不在命名空间中。您应该只使用"user_profile"
或为include
调用中包含的网址设置名称空间。
此处更详细地解释了命名空间。 https://docs.djangoproject.com/en/dev/topics/http/urls/#url-namespaces