![](/img/trans.png)
[英]Django : NoReverseMatch for HttpResponseRedirect with kwargs
[英]Django HttpResponseRedirect(reverse('url')) Returns NoReverseMatch Error
我有這個標簽<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]+)/$']
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
我該如何解決?
您使用"mysite:user_profile"
進行反向調用,但是URL不在名稱空間中。 您應該只使用"user_profile"
或設置包裹在一個呼叫中的網址命名空間include
。
命名空間在這里有更詳細的說明。 https://docs.djangoproject.com/en/dev/topics/http/urls/#url-namespaces
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.