簡體   English   中英

Django HttpResponseRedirect(reverse('url'))返回NoReverseMatch錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM