2016-03-20 50 views
0

如何將登錄用戶鏈接到他的個人資料頁面?將用戶鏈接到他的個人資料頁面

{% if user.is_authenticated %} 

<a href= "{% url 'blog:profile' userProfile.user %}">Profile</a> 

下面是所涉及的部分:

views.py

@login_required 
def profile(request, profile_id): 
    if profile_id == "0": 
     if request.user.is_authenticated: 
      userProfile = UserProfile.objects.get(pk=profile_id) 
    else: 
     userProfile = UserProfile.objects.get(pk=profile_id) 

    return render_to_response('blog/profile.html', {'userProfile':userProfile}, RequestContext(request)) 

urls.py

url(r'^profile/(?P<profile_id>\d+)/$', views.profile), 

models.py

class UserProfile(models.Model): 
    user = models.OneToOneField(User) 
    bio = models.TextField(max_length=500, blank = True, default=('keine Angabe'), null=True) 
    image = models.FileField(null=True, blank=True) 

    def __unicode__(self): 
     return self.user.username 
+1

您遇到的任何特定問題/錯誤? – v1k45

+0

例外類型:\t NoReverseMatch 例外值:\t 未找到參數'('',)'和關鍵字參數'{}'的'profile'反向。 0模式嘗試:[] – royaIT

+0

可能會有settings.py的問題嗎? – royaIT

回答

2

在您的模板中,儘管您尚未在urlpatterns中將name關鍵字參數傳遞給url函數,但您仍嘗試使用url標記和指定的網址。

在網址功能通name的說法,這樣的:

url(r'^profile/(?P<profile_id>\d+)/$', views.profile, name='profile'), 

確保您在根URL的conf命名空間的應用程序爲「博客」。

在您的模板中,通過請求上下文的用戶對象訪問當前用戶的配置文件ID。像這樣:

{% if user.is_authenticated %} 

    <a href= "{% url 'blog:profile' user.userprofile.id %}">Profile</a> 
+0

非常感謝! :) – royaIT

相關問題